REST API:使用DTO还是简单的键值?

时间:2012-06-22 20:30:36

标签: rest

我正在编写RESTful API,并且在更新数据库中的数据时不确定如何传递更大的数据对象(实体)。

一个想法就是序列化一个实体并将其用作DTO。优点:代码更少,更灵活,因为(如果我们忽略数据验证)你只需要使用ORM反序列化并标记持久性(基本上我的意思是你不必列出所有属性)。缺点:您需要在客户端拥有Entity类。如果API是在内部使用的,那么它是公共的,那么客户端就会变得更重(如果客户端和服务器是用不同的语言编写的,例如PHP和Java,则不确定它是否兼容)。

其他想法是将JSON键值对象(转换为JSON对象的关联PHP数组)与要更新的值一起传递,如果未定义值,则假定该属性不会更新。优点:客户端的代码非常简单明了,易于实现知识较少的开发人员。缺点:你最终检查所有参数(检查是否定义了值,如果是,然后标记更新)在服务器端,这只是ifs的大块,一般看起来不太好。

数据格式将用于整个API,不仅用于更新,只是考虑更新引发了这个问题。

或者可能同时使用(DTO用于内部使用,KV用于第三方应用)并在请求中指定使用哪种格式?

0 个答案:

没有答案