java - 为 vertx 项目生成 OpenAPI 规范

标签 java swagger vert.x openapi

我想为我的 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 的教程。

任何人都可以帮助我或任何指示吗?

抱歉,如果这个问题很幼稚。

最佳答案

在 Vert.x 3.5.0 中有一个名为 Vert.x Web API Contract 的新包帮助您为您的请求生成路由器和验证处理程序。您还可以使用 slush-vertx 生成项目的骨架。 ,一个命令行工具,可帮助您构建项目

关于java - 为 vertx 项目生成 OpenAPI 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47688883/

相关文章:

java - 如何让 Vert.x 和 Apache Ignite Client 协同工作?

java - Spring JPA 方法名称 validator

java - 如何有效地将数组更改为数组列表

java - Spring API Gateway 中的 Swagger Api 文档

ServiceStack 工作但 Swagger-UI 不工作

java - Vertx : java. sql.SQLSyntaxErrorException:用户缺乏权限或未找到对象:ACHAT

vert.x - 在 Vertx webclient 中如何记录 http 请求和响应

java - scala 和 java io 和套接字问题

java - 帮助使用正则表达式解析并获取 html 中 <p> 标记的内容

swagger - 使用 swaggo/swag 创建 Post 请求文档