Java API中的部分更新

Java API中的部分更新,java,web-services,api,Java,Web Services,Api,我有一个用例,需要更新API的一些字段。 例如: 如果API是UpdateStudentDetails,它所接受的输入是: Name CGPA Address Hostel Name 这里我只想更新Name。 一种方法是获取所有字段,然后更新Name,并使用所有字段调用UpdateStudentDetails。它要求在更新调用之前在客户端进行一次读取调用 其他方法有: 1.询问客户需要更新的内容。在这种情况下,API签名可能如下所示: Name CGPA Addr

我有一个用例,需要更新API的一些字段。
例如:
如果API是
UpdateStudentDetails
,它所接受的输入是:

Name
CGPA
Address
Hostel Name
这里我只想更新
Name

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

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

     Name
     CGPA
     Address
     Hostel Name
     StudentDetailsToUpdate
这里的
StudentDetailsToUpdate
是枚举列表,枚举可以有
NAME、CGPA、ADDRESS、HOSTEL\u NAME等值。
根据客户端提供的枚举列表,我们可以更新相应的字段

  • 根据字段值执行操作。所以在这种情况下,如果CGPA作为
    null
    传递,那么客户端不想更新它,如果
    Name
    非null
    ,那么客户端想更新它

  • 我无法找到上述两种方法的主要优点和缺点,也无法寻求社区的指导。我有点倾向于第一种方法,因为我的意图是明确的,我不会根据字段值做出决定,因为其他语言可能没有空的概念。

    我会选择第二种方法

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

    真正好的选择是选项3:)使用构建器模式(你可以很容易地用谷歌搜索,因为它是一种广泛使用的模式)。通过这种方式,您可以链接所有需要更新的值,并在它们不为null时进行更新

    你会得到这样的结果

    UpdateStudentDetails details = new UpdateStudentsBuilder().withName("Tony").withHostelName("Some nice hostel").build();