[英]REST/JSON : How to generate sample requests ? How to expose API?
使用Java,当我使用Soap公开某些Web服务时,我有一个描述所有输入/输出的WSDL,如果我在SoapUI客户端中使用此WSDL,它将对它进行分析并为我生成一些示例请求。
Rest / Json执行此操作的过程是什么? 我知道wadl,但是SoapUI无法从中生成示例请求。 我知道诸如Swagger套件之类的第三方工具,但这是唯一的方法吗? 您是否必须使用某些外部文档工具来公开您的API并向用户显示一些示例请求?
还没有答案,所以几年后再来。
您需要使用OpenAPI规范 (将结果称为“ Swagger合同”),该规范定义了RESTful API的标准,与语言无关的接口,而忘了WADL。
这将等效于SOAP WSDL,但更易于阅读,更易于生成并且约束更轻。
使用Swagger,您可以在“合同第一”(使用https://editor.swagger.io/设计合同)中工作,也可以在“代码优先”中工作,在这里您将使用Springfox之类的框架从代码+注释。 最后一个是更简单的imo,它是“先订立合同”的另一种方式,这与您是否在设计合同之前实施整个应用程序不同。
一旦在URL上提供了“麻烦的合同”文档,您就可以部署一个swagger-ui网站以一种交互式的方式对其进行可视化:它将生成一些示例请求,并允许您在自定义它们之后执行这些请求。
try {
url="put your service url";
HttpPost request = new HttpPost(url);
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
// Build JSON string
JSONStringer item = new JSONStringer()
.object()
.key("password").value(pass)
.key("username").value(email)
.endObject();
StringEntity entity = new StringEntity(item.toString());
request.setEntity(entity);
// Send request to WCF service
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpResponse response = httpClient.execute(request);
HttpEntity entity1 = response.getEntity();
InputStream stream = entity1.getContent();
r = Splash.convertStreamToString(stream);
JSONObject jo = new JSONObject(r);
s= (Integer) jo.get("Flag");
Log.d("json result is:", r);
statusCode = response.getStatusLine().getStatusCode();
} catch (Exception e) {
e.printStackTrace();
Log.d("error", "code"+0);
}
return s;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.