在设计使用JSON作为消息传递格式的WCF REST服务时,最好是将序列化的JSON对象传递给WCF服务还是包含参数值对的JSON?
换句话说,签名最好的方法是什么:
public void CreateUser(User user);
或
public void CreateUser(string userName, string firstName, string lastName, string email, string password);
User对象将包含UserName,FirstName,LastName,Email和Password的属性。
在我看来,消费者使用后来的签名会更容易,因为它消除了用户对象实际需要包含的问题。
我的想法是否正确?
答案 0 :(得分:1)
实际上 - 我希望REST-ful API能够创建一个看起来像HTTP POST的用户。
http://myhostname/users/
其中请求的主体包含构造新User对象所需的字段。
然后,Web服务将创建对象,将其持久化,并将URI返回给对象,以便以后检索它。例如,它可能会返回
http://myhostname/users/DanWaterbly
消费者使用这种方法相当容易,因为正确编写的反序列化器可以容忍User对象中额外或缺少的元素。