首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是用RestAPI推荐的一个POST调用来创建不同的对象

是用RestAPI推荐的一个POST调用来创建不同的对象
EN

Stack Overflow用户
提问于 2015-03-04 01:31:09
回答 1查看 28关注 0票数 0

我正在为我的web应用程序实现一个RESTfull API,它在php中。在决定是否允许使用单个POST调用创建多个不同类型的对象时,我遇到了一个问题。我的方案如下。

  1. 通过将数据作为POST参数传递,客户端可以在我的应用程序中创建addEmployee api服务函数。
  2. 在我的系统中,员工有两个依赖项,即“职务名称”和“雇用状态”,它们分别保存在系统中。因此,客户端必须传递职务名称和就业状态名称以及addEmployee POST调用。
  3. 当客户端调用addEmployee方法时,它会在内部检查给定的职务名称和雇用状态是否已经存在于系统中,如果已经存在,则只为Employee对象中的现有对象添加一个引用。
  4. 如果系统中没有给定的职务或就业状态,addEmployee方法将首先在系统中保存职务标题和就业状态对象,然后在Employee对象中添加引用。
  5. addJobTitle和addEmploymentStatus有单独的API函数,如果它们需要向系统添加更多的职务和就业状态,它们可以被客户端使用。

在上面的工作流中,我不确定第4步是否正确,因为内部保存操作对客户端不可见,并且降低了API的可见性。但就可用性而言,这是很好的,因为客户端可以添加最多一个web服务调用的员工。

我可以替换第4步,如下所示,以提高能见度。

  1. 如果系统中没有给定的职务名称或就业状态,addEmployee方法将返回一个异常,说明这些异常在系统中不可用,并且该响应将提供uris到addJobTitle和addEmploymentStatus函数,从而允许客户端使用uris并首先保存这些职务名称和雇用状态。在保存了职务名称和就业状态对象之后,客户端可以再次调用addEmployee方法来添加具有给定职务名称和雇用状态的员工。

第二种方法将提高API的可见性,但是性能、虎钳和可用性虎钳不会很有效,因为客户必须最多调用API 3倍才能向系统中添加一名员工。

请告诉我解决这个问题的方法是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-04 02:11:03

我认为您正在尝试的第四步是有效的,没有任何更改,也是推荐的方法。

  • 如果考虑职务名称和就业状况,两者都与员工相关。
  • 最好的方法是不要在API中公开添加职务标题和添加就业状态的方法。因为如果您这样做,客户端可以继续创建这些,例如,一个可以创建职务名称Software Engineer,另一个可以创建SW Engineer。在你知道之前,你有数百个职位。就业状况也是如此。
  • 只有列出职务名称和雇用状态的方法才能满足后端设置这些方法(SQL或手动插入或只管理只插入)
  • 最后,正如您所提到的,您可以减少多个调用并减少带宽,这对于API要被例如无线网络上的移动应用程序使用至关重要。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28845210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档