我是dropwizard和REST的新手。
我的示例应用程序是一个订单查看系统。目前,我正在开发一种功能,其中UI页面包含一组订单搜索条件,搜索按钮和用于将搜索结果下载为CSV的链接。只有在成功搜索后才会显示下载链接。应用程序必须将搜索结果写入CSV文件,返回的文件位置将用于下载文件。
我需要帮助组织端点。
最初,我想到了一个终点GET
- /orders
- text/JSON
,搜索条件作为查询参数传入。但是,由于我实际上将为每个GET请求创建CSV,我想知道我是否违反了GET的HATEOAS休息约束(不应创建资源)。或者,由于实际资源是订单而不是CSV,是否可以将端点设为GET?
或者,我是否需要多个端点遵守REST约束和约定相互交互以产生所需的结果? 喜欢:
1. POST
- /orders/csv
- text/json
(文件名):创建订单的CSV文件并返回文件名的JSON。
2. GET
/orders/csv/<file_name>
:获取要下载的文件。
非常感谢你的帮助。