需要帮助定义一个通用的web服务API,该API将从数据库返回给定“类型”的给定记录的一组动态/可配置的字段值。web服务是供应商的,但是我们可以控制API的定义/设计。目标是定义这个API。
背景:
我们有一个由SaaS供应商托管的DB。DB包含各种(“类型”)表,如申请者、应用程序、位置等。供应商公开了一个我们可以调用以检索数据的we服务。我们有一套新的需求,将由供应商支持更新他们的web服务的API。
所需经费:
1.用于存储和检索字段的可配置列表的方法:我们必须想出一种方法,将要从数据库中检索的字段(对于给定的记录)存储在配置介质中--这个媒体将包含一个数据类型列表,其中包含要为每个字段提取的相关字段。这种介质驱动从web服务中为给定记录检索的内容。
例如:配置介质可以包含具有以下字段的“申请者”数据类型: ID、FirstName、LastName。这意味着,我们只会要求这三个字段时,拉一个“申请人”类型的记录。此可配置数据可以随时更改/编辑。
2."Generic“仅检索指定的字段,第二个要求是构造一个与上述可配置字段列表协同工作的泛型。我们希望以“通用方式”调用供应商的web服务接口,该接口接受记录id、数据类型和动态字段集(根据配置数据)。所谓“泛型”,我指的是供应商的web服务应该只知道要在运行时检索的字段。这意味着我们可以根据需要更改配置源(字段或数据类型),而不会对web服务API产生任何影响。
Q/Thoughts包括:
( a)配置存储:我们在配置文件、DB或web服务中管理配置。有没有更好的更通用的方法来做到这一点?在这种情况下,web服务(发布给定数据类型的字段列表)是否有意义?
( b)使网络服务“通用”:
--在“每个”调用web服务以检索给定记录的数据时,我们发送一组动态字段作为输入param --可能作为对象或列表,等等。
--而不是在“每个”调用上发送列表,我们只将记录id和类型发送到web服务,web服务查找要从我们的web服务中提取的字段。
发布于 2011-06-23 20:15:29
最简单的方法是将功能公开为某种RESTful web服务。也就是说,对于申请者,您将让/db/applicant/返回所有申请者(或申请者ID )的列表,如果123是申请者ID,则将检索/db/applicant/123。最简单的方法是检索JSON对象,如
{'first_name':'Joe', 'last_name':'Applicant', 'address':'123 Test Drive'}此外,您还可以添加一个参数来编码您感兴趣的字段,例如/db/applicant/123?fields=first_name+last_name。
使用JSON (或者XML,如果您认为额外的工作是值得的)与CSV或其他替代方法相比具有优势,因为您返回的字段集是可扩展的--也就是说,如果一个客户端需要一个shoe_size字段,则另一个客户机的响应可以包含它,而且一切都仍然可以工作。
https://stackoverflow.com/questions/6459935
复制相似问题