考虑以下情况: 我想更新用户的多个字段(名字,姓氏,年龄......)
使用RESTFUL API
PUT /user/{userId}
在C#中我会有以下方法
UpdateUser(int userId, User user)
问题是User类可能包含许多永远不会改变的参数(例如id,email,role,affiliation,registrationDate,...)
因此,在swagger或api描述中,有时很难知道哪些是必需/可选参数,并且api的描述变得越来越长,因为User对象可能包含许多对此更新不重要的字段操作
要解决此问题,我可以创建一个仅包含必填字段的特定“UpdateUserParameters”对象。问题是,如果我为每个API执行此操作,那么我将以许多不同的对象结束, in fine 每次代表用户的子部分。
我当然也可以在api的注释部分指定重要的参数,即使它比开发人员的第一个解决方案更不明显(说到这一点,swagger将放置整个User对象定义,这可能会令人不安。
那么处理这个问题的最佳做法是什么?