我想为我的vertx项目生成一个OpenAPI规范。所以我有一个简单的vertx服务器,如下所示,只返回一个json对象:
package server;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.http.HttpServer;
import io.vertx.core.http.HttpServerRequest;
import io.vertx.core.http.HttpServerResponse;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
import io.vertx.ext.web.handler.BodyHandler;
public class Server extends AbstractVerticle {
@Override
public void start() throws Exception {
HttpServer server = vertx.createHttpServer();
Router router = Router.router(vertx);
router.route("/v0.2.2/*").handler(this::responseSetUp);
router.get("/v0.2.2/location").handler(this::getLocation);
server.requestHandler(router::accept).listen(8004);
}
public void responseSetUp(RoutingContext context) {
HttpServerResponse response = context.response();
response.putHeader("Access-Control-Allow-Origin", "*")
.putHeader("Access-Control-Allow-Methods", "GET, POST, PUT , DELETE, OPTIONS")
.putHeader("Access-Control-Allow-Headers", "Content-Type,cache-control, x-requested-with")
.putHeader("Access-Control-Max-Age", "86400");
context.next();
}
public void getLocation(RoutingContext context) {
JsonObject location = new JsonObject();
location.put("city", "Bangalore");
location.put("country", "India");
location.put("pin", 560095);
HttpServerResponse response = context.response();
response.putHeader("content-type", "application/json");
response.setChunked(true);
response.write(location.toString());
response.end();
}
}
我只想为此路由生成OpenAPI规范。我是Swagger的新手,到目前为止谷歌搜索时,我可以看到RestEasy,Mule,Jersey1,Jersey2,Spring的教程,但不是针对vertx。
任何人都可以帮助我或任何指针吗?
对不起,如果问题很幼稚。
答案 0 :(得分:2)
使用Vert.x 3.5.0,有一个名为Vert.x Web API Contract的新软件包可帮助您为请求生成路由器和验证处理程序。您还可以使用slush-vertx生成项目的框架,Advanced scearching是一个帮助您构建项目的命令行工具