繁体   English   中英

REST / JSON:如何生成示例请求? 如何公开API?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM