API

时间:2015-05-15 13:39:29

标签: java web-services api

我有一个用例,我需要更新API的一些字段 例如:
如果API为UpdateStudentDetails,则输入为:

Name
CGPA
Address
Hostel Name

此处我只想更新Name 一种方法是获取所有字段,然后更新Name并使用所有字段调用UpdateStudentDetails。在更新调用之前,它需要在客户端进行一次读取调用。

其他方式是:
1.询问客户需要更新的内容。在这种情况下,API签名可能如下所示:

     Name
     CGPA
     Address
     Hostel Name
     StudentDetailsToUpdate

此处StudentDetailsToUpdate是枚举列表,枚举可以包含NAME, CGPA, ADDRESS, HOSTEL_NAME等值。               根据客户提供的枚举列表,我们可以更新各自的字段。

  1. 根据字段值执行操作。因此,在这种情况下,如果CGPA作为null传递,那么客户端不希望更新它,如果Namenon-null,那么客户端想要更新。
  2. 我无法在上述两种方法中找到重大的利弊,并寻求社区的指导。我有点倾向于第一种方法,因为我的意图很明确,而且我没有根据字段值做出决定,因为有些其他语言可能没有null的概念。

1 个答案:

答案 0 :(得分:1)

我会选择第二种选择。

如果你选择第一个,你必须编写所有这些代码只是为了检查需要更新的参数。

选项3可能是一个不错的选择:)使用构建器模式(您可以轻松谷歌,因为它是一种广泛使用的模式)。这样,您可以链接所有需要更新的值,如果它们不为空,则更新它们。

你会得到像

这样的东西
UpdateStudentDetails details = new UpdateStudentsBuilder().withName("Tony").withHostelName("Some nice hostel").build();