Java 招摇过市:RESTAPI中的自定义操作
在我们的RESTAPI项目中,我们发现编写一个支持多个自定义操作的RESTAPI有点困难 可以在此资源上执行多种操作,例如Java 招摇过市:RESTAPI中的自定义操作,java,rest,jax-rs,swagger,swagger-ui,Java,Rest,Jax Rs,Swagger,Swagger Ui,在我们的RESTAPI项目中,我们发现编写一个支持多个自定义操作的RESTAPI有点困难 可以在此资源上执行多种操作,例如验证,处理等。数据不会持久化到后端,相反,规则引擎(在后端)将对资源执行这些操作并返回结果 RESTURI:PUT http://:///REST/configuration 正文: { "action": "VALIDATE", "commonAttribute": "", "validateAttribute": "" } 或 对于VALI
验证
,处理
等。数据不会持久化到后端,相反,规则引擎(在后端)将对资源执行这些操作并返回结果
RESTURI:PUT http://:///REST/configuration
正文:
{
"action": "VALIDATE",
"commonAttribute": "",
"validateAttribute": ""
}
或
对于VALIDATE
操作,提供了公共属性和验证特定属性(validateAttribute
)。过程
操作的情况也类似
创建配置POJO是为了以以下方式表示输入:
public class Configuration {
// will be modeled as enum
private String action;
private String commonAttribute;
private String validateAttribute;
private String processAttribute;
// getters and setters
}
由于这两个操作是在一个RESTURI中实现的,因此swagger文档变得稍微复杂一些。在此URI下,请求主体的模型架构
将同时包含validateAttribute
和processAttribute
,如下所示:
{
"action": "string",
"commonAttribute": "string",
"validateAttribute": "string",
"processAttribute": "string"
}
这两个属性的存在都会给用户带来某种混乱,即使口头文档(在swagger中)中可以包含一些细节,例如哪些属性的操作
注1:根据REST设计指南,这些操作未包含在REST URI路径中。
注2:由于我们的操作本质上是幂等的,所以选择了PUT操作而不是POST操作
我正在寻找指南,以准确、简洁的方式在《狂妄博士》中表达这些行为及其属性。有没有更好的方法来设计这些API或大摇大摆地表示它们。您好,您对此有什么答案吗?@NetSurgeon我还没有一个合适的解决方案。进一步分析后,我意识到较旧版本的swagger UI(非jquery)支持这种行为。由于新版本不支持此功能,我修改了swagger UI逻辑以处理此场景。(Swagger 1.2规范支持这一点,并返回适当的响应)。它是执行附加处理以忽略多个列表的UI。您好,您对此有何回答?@NetSurgeon我没有适当的解决方案。进一步分析后,我意识到较旧版本的swagger UI(非jquery)支持这种行为。由于新版本不支持此功能,我修改了swagger UI逻辑以处理此场景。(Swagger 1.2规范支持这一点,并返回适当的响应)。它是执行附加处理以忽略多个列表的UI。您好,您对此有何回答?@NetSurgeon我没有适当的解决方案。进一步分析后,我意识到较旧版本的swagger UI(非jquery)支持这种行为。由于新版本不支持此功能,我修改了swagger UI逻辑以处理此场景。(Swagger 1.2规范支持这一点,并返回适当的响应)。它是执行附加处理以忽略多个列表的UI。
{
"action": "string",
"commonAttribute": "string",
"validateAttribute": "string",
"processAttribute": "string"
}