精华内容
下载资源
问答
  • Swagger UI

    2016-12-04 19:05:06
    Swagger UI
  • Swagger ui

    2015-08-04 09:29:28
    spring mvc mybatis Swagger ui 整合 生成接口文档
  • golang-swaggerui-example Golang-swaggerui-example是一个示例存储库,用于在您的Golang项目中使用SwaggerUI设置API文档。 详细说明可在。 API互动 可以通过访问localhost:8080 / swaggerui /访问SwaggerUI,有关...
  • Spring Boot & Swagger UI Spring Boot集成Swagger UI的一个小demo
  • 使用Magicodes.SwaggerUI快速配置SwaggerUI以及设置API分组.pdf
  • swagger ui

    2018-06-10 19:57:00
    You can pull a pre-built docker image of the swagger-ui directly from Dockerhub: docker pull swaggerapi/swagger-ui docker run -p 80:8080 swaggerapi/swagger-ui Will start nginx with swagger-ui on ...

    You can pull a pre-built docker image of the swagger-ui directly from Dockerhub:

    docker pull swaggerapi/swagger-ui
    docker run -p 80:8080 swaggerapi/swagger-ui
    

    Will start nginx with swagger-ui on port 80.

    Or you can provide your own swagger.json on your host

    docker run -p 80:8080 -e SWAGGER_JSON=/foo/swagger.json -v /bar:/foo swaggerapi/swagger-ui
    

    The base URL of the web application can be changed by specifying the BASE_URL environment variable:

    docker run -p 80:8080 -e BASE_URL=/swagger -e SWAGGER_JSON=/foo/swagger.json -v /bar:/foo swaggerapi/swagger-ui
    

    This will serve Swagger UI at /swagger instead of /.

    转载于:https://www.cnblogs.com/mhc-fly/p/9164163.html

    展开全文
  • Swagger UI Koa 2 从分叉 将中间件添加到您的koa应用中,以提供绑定到Swagger文档的Swagger UI。... import swaggerUi from 'swagger-ui-koa' ; import swaggerJSDoc from 'swagger-jsdoc' ; import conve
  • swagger-editor、swagger-ui和swaggerui( tomca)版,windows x64 nodejs安装版项目包下载
  • Swagger UISwagger项目的一部分。 Swagger项目允许您生成,可视化和使用OWN RESTful服务。 无需代理或第三方服务。 用自己的方式做。 Swagger UI是HTML,Javascript和CSS资产的无依赖集​​合,可从与Swagger...
  • Swagger UI观察器 Swagger UI Watcher可检测到本地Swagger文件中的更改,并在浏览器中重新加载Swagger UI,从而为您提供流畅的工作流程。 它主要是为使用$ ref处理多个Swagger文件而开发的。 为什么? 使用在线...
  • swaggerOptions : { // passed to SwaggerUi() dom_id : 'swagger-ui-container' , url : 'http://petstore.swagger.io/v2/swagger.json' , // link to swagger.json supportedSubmitMethods : [ 'get' , 'post' ...
  • from flask_swagger_ui import get_swaggerui_blueprint app = Flask ( __name__ ) SWAGGER_URL = '/api/docs' # URL for exposing Swagger UI (without trailing '/') API_URL = '...
  • spring-boot-swagger-ui Spring Boot Swagger UI
  • 然后通过添加"SwaggerUI"将模块添加到 application.config.php 中的 modules 数组。 最后,您需要使资产文件夹可公开访问。 这可以通过多种方式完成,但为了简单起见,您可以添加这样的符号链接; cd [ZF-app-...
  • swaggerUI:3.14.1(对Tibor17表示感谢) swagger-core:1.5.19(Thbor to Tibor17) 演示: 从0.8版开始,您可以从访问该库。 ###在项目中使用Swagger核心和Swagger UI。 该库提供了许多默认值,并获得了3种...
  • https://github.com/ostranme/swagger-ui-themes的所有主题都在扩展中 扩展以在swagger上应用https://github.com/ostranme/swagger-ui-themes中的主题。 支持语言:English
  • swagger-ui-中间件 用于 ExpressJS 的 Swagger UI 托管中间件 #安装 首先在优选版本中安装 swagger-ui: npm install swagger-ui --save 然后安装 swagger-ui-middleware: npm install swagger-ui-middleware -...
  • swaggerui.zip

    2021-04-21 11:34:16
    Java-springBoot+swaggerUI2整合
  • Docker的Swagger UI 该Dockerfile打包了Swagger UI并使用Nginx运行它。 设置Swagger URL 您可以在运行时通过设置URL环境变量来设置Swagger URL。 例子 docker run -it --rm -p 3000:80 --name test -e "URL=...
  • :sparkles: Swagger UI插件 由维护的有用的Swagger UI插件的多包存储库。 :backhand_index_pointing_right: 可用插件 :当OAS 3.0 servers为空或丢失时,进入仅文档模式 贡献 随时打开问题并提出修复错误,添加...
  • from falcon_swagger_ui import register_swaggerui_app app = falcon . API () SWAGGERUI_URL = '/swagger' # without trailing slash SCHEMA_URL = 'http://petstore.swagger.io/v2/swagger.json' ### For ...
  • Jekyll Swagger UI插件 是用于描述,产生,使用和可视化RESTful Web API的框架。 它包括Swagger规范和一组工具。 是一个Web工具,可从Swagger Spec中的API定义文件动态生成文档。 该插件将Swagger UI集成到Jekyll...
  • SwaggerUI+SpringBoot 访问地址 http://localhost:9330/v1/swagger-ui.html#/ Maven依赖 io.springfox springfox-swagger-ui 2.2.2 io.springfox springfox-swagger2 2.2.2


    SwaggerUI+SpringBoot

    测试 访问地址  http://localhost:8080/v1/swagger-ui.html#/
    下面是具体配置

    Maven依赖
       
    <!-- Swagger -->
    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.2.2</version>
    </dependency>
    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.2.2</version>
    </dependency>
    <!-- END Swagger -->

    properties
       
    server.servlet-path=/v1

    Config
       
    package com.unioncast.db.config;
     
    import static com.google.common.base.Predicates.or;
    import static springfox.documentation.builders.PathSelectors.regex;
     
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.ResponseEntity;
     
    import com.google.common.base.Predicate;
    import com.google.common.base.Predicates;
     
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
     
    /**
    * SwaggerConfig
    */
    @Configuration
    public class SwaggerConfig {
     
    @Value("${server.servlet-path}")
    private String pathMapping;
     
    private ApiInfo initApiInfo() {
    ApiInfo apiInfo = new ApiInfo("数据存储项目 Platform API", // 大标题
    initContextInfo(), // 简单的描述
    "1.0.0", // 版本
    "服务条款", "后台开发团队", // 作者
    "The Apache License, Version 2.0", // 链接显示文字
    "http://www.baidu.com"// 网站链接
    );
    return apiInfo;
    }
     
    private String initContextInfo() {
    StringBuffer sb = new StringBuffer();
    sb.append("REST API 设计在细节上有很多自己独特的需要注意的技巧,并且对开发人员在构架设计能力上比传统 API 有着更高的要求。").append("<br/>")
    .append("以下是本项目的API文档");
    return sb.toString();
    }
     
    @Bean
    public Docket restfulApi() {
    System.out.println("http://localhost:8080" + pathMapping + "/swagger-ui.html");
    return new Docket(DocumentationType.SWAGGER_2).groupName("RestfulApi")
    // .genericModelSubstitutes(DeferredResult.class)
    .genericModelSubstitutes(ResponseEntity.class).useDefaultResponseMessages(true).forCodeGeneration(false)
    .pathMapping(pathMapping) // base,最终调用接口后会和paths拼接在一起
    .select().paths(doFilteringRules()).build().apiInfo(initApiInfo());
    // .select().paths(Predicates.not(PathSelectors.regex("/error.*"))).build().apiInfo(initApiInfo());
     
    }
     
    /**
    * 设置过滤规则 这里的过滤规则支持正则匹配    //若有静态方法在此之前加载就会报集合相关的错误.
    *
    * @return
    */
    private Predicate<String> doFilteringRules() {
    // return Predicates.not(PathSelectors.regex("/error.*"));
    // return or(regex("/hello.*"), regex("/rest/adxSspFinanceManagement.*"));//success
    return or(regex("/hello.*"), regex("/rest.*"));
    }
    }

    run
       
    package com.unioncast.db;
     
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
     
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
     
    @SpringBootApplication
    @EnableSwagger2
    public class DbRestApiApplication {
     
    // private static final Logger LOG = LogManager.getLogger(DbRestApiApplication.class);
     
    public static void main(String[] args) {
    SpringApplication.run(DbRestApiApplication.class, args);
    }
     
    // @Bean
    // public WebMvcConfigurerAdapter adapter() {
    // return new WebMvcConfigurerAdapter() {
    // @Override
    // public void addInterceptors(InterceptorRegistry registry) {
    // super.addInterceptors(registry);
    // registry.addInterceptor(new HandlerInterceptor() {
    // @Override
    // public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
    // throws Exception {
    // // TODO 计划把controller里那些日志转移到这里进行输出
    // LOG.info("preHandle");
    // return true;
    // }
    //
    // @Override
    // public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
    // ModelAndView modelAndView) throws Exception {
    // LOG.info("postHandle");
    // }
    //
    // @Override
    // public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
    // Object handler, Exception ex) throws Exception {
    // LOG.info("afterCompletion");
    // }
    // }).addPathPatterns("/**");
    // }
    // };
    // }
    }


    case
       
    package com.unioncast.db.api.rest.adx;
     
    import java.net.URI;
    import java.util.List;
     
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.HttpHeaders;
    import org.springframework.http.HttpStatus;
    import org.springframework.http.ResponseEntity;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.ResponseStatus;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.util.UriComponentsBuilder;
     
    import com.unioncast.common.adx.model.AdxSspFinanceManagement;
    import com.unioncast.common.page.Pagination;
    import com.unioncast.common.restClient.RestResponse;
    import com.unioncast.db.api.rest.GeneralController;
    import com.unioncast.db.rdbms.core.exception.DaoException;
    import com.unioncast.db.rdbms.core.service.adxDBService.AdxSspFinanceManagementService;
     
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiImplicitParam;
    import io.swagger.annotations.ApiImplicitParams;
    import io.swagger.annotations.ApiOperation;
     
    @Api(value = "API - AdxSspFinanceManagementController")
    @RestController
    @RequestMapping("/rest/adxSspFinanceManagement")
    public class AdxSspFinanceManagementController extends GeneralController {
     
    private static final Logger LOG = LoggerFactory.getLogger(AdxSspFinanceManagementController.class);
     
    @Autowired
    private AdxSspFinanceManagementService adxSspFinanceManagementService;
     
    /**
    * 查找所有
    *
    * @date 2016年10月19日 下午1:30:29
    *
    * @return
    * @throws DaoException
    */
    @ApiOperation(value = "查找所有", httpMethod = "POST", response = RestResponse.class)
    @RequestMapping(value = "/findAll", method = RequestMethod.POST)
    public RestResponse findAll() throws DaoException {
    RestResponse restResponse = new RestResponse();
    restResponse.setStatus(RestResponse.OK);
    AdxSspFinanceManagement[] adxSspFinanceManagements = adxSspFinanceManagementService.findAll();
    LOG.info("adxSspFinanceManagements:{}", (Object) adxSspFinanceManagements);
    restResponse.setResult(adxSspFinanceManagementService.findAll());
    return restResponse;
    }
     
    /**
    * 分页条件查找
    *
    * @date 2016年9月29日 下午6:59:46
    *
    * @return
    * @throws DaoException
    */
    @ApiOperation(value = "分页条件查找", httpMethod = "POST", response = RestResponse.class)
    @ApiImplicitParams({
    @ApiImplicitParam(name = "currentPage", required = true, dataType = "Integer", paramType = "path"),
    @ApiImplicitParam(name = "pageSize", required = true, dataType = "Integer", paramType = "path"),
    @ApiImplicitParam(name = "adxSspFinanceManagement", required = true, dataType = "AdxSspFinanceManagement", paramType = "body") })
    @RequestMapping(value = "/page/{currentPage}/{pageSize}", method = RequestMethod.POST)
    public RestResponse page(@RequestBody AdxSspFinanceManagement adxSspFinanceManagement,
    @PathVariable Integer currentPage, @PathVariable Integer pageSize) throws DaoException {
    LOG.info("adxSspFinanceManagementCondition:{}", adxSspFinanceManagement);
    LOG.info("currentPage:{}", currentPage);
    LOG.info("pageSize:{}", pageSize);
    RestResponse restResponse = new RestResponse();
    restResponse.setStatus(RestResponse.OK);
    Pagination<AdxSspFinanceManagement> pagination = adxSspFinanceManagementService.page(adxSspFinanceManagement,
    currentPage, pageSize);
    LOG.info("pagination:{}", pagination);
    restResponse.setResult(adxSspFinanceManagementService.page(adxSspFinanceManagement, currentPage, pageSize));
    return restResponse;
    }
     
    /**
    * 根据id查找
    *
    * @date 2016年9月29日 下午7:09:03
    *
    * @param id
    * @return
    * @throws DaoException
    */
    @ApiOperation(value = "根据id查找", httpMethod = "POST", response = RestResponse.class)
    @ApiImplicitParams({ @ApiImplicitParam(name = "id", required = true, dataType = "Integer", paramType = "path") })
    @RequestMapping(value = "/findById/{id}", method = RequestMethod.POST)
    public RestResponse findById(@PathVariable Long id) throws DaoException {
    LOG.info("id:{}", id);
    RestResponse restResponse = new RestResponse();
    restResponse.setStatus(RestResponse.OK);
    AdxSspFinanceManagement adxSspFinanceManagement = adxSspFinanceManagementService.findById(id);
    LOG.info("adxSspFinanceManagement:{}", adxSspFinanceManagement);
    restResponse.setResult(adxSspFinanceManagementService.findById(id));
    return restResponse;
    }
     
    /**
    * 增加
    *
    * @date 2016年10月21日 下午5:02:59
    *
    * @param adxSspFinanceManagement
    * @param uriComponentsBuilder
    * @return
    * @throws DaoException
    */
    @ApiOperation(value = "增加", httpMethod = "POST", response = RestResponse.class)
    @ApiImplicitParams({
    @ApiImplicitParam(name = "adxSspFinanceManagement", required = true, dataType = "AdxSspFinanceManagement", paramType = "body") })
    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public ResponseEntity<RestResponse> add(@RequestBody AdxSspFinanceManagement adxSspFinanceManagement,
    UriComponentsBuilder uriComponentsBuilder) throws DaoException {
    LOG.info("adxSspFinanceManagement:{}", adxSspFinanceManagement);
    RestResponse restResponse = new RestResponse();
    restResponse.setStatus(RestResponse.OK);
    Long id = adxSspFinanceManagementService.save(adxSspFinanceManagement);
    LOG.info("id:{}", id);
    restResponse.setResult(id);
    HttpHeaders httpHeaders = new HttpHeaders();
    URI uri = uriComponentsBuilder.path("/rest/adxSspFinanceManagement/findById/").path(String.valueOf(id)).build()
    .toUri();
    httpHeaders.setLocation(uri);
    return new ResponseEntity<RestResponse>(restResponse, httpHeaders, HttpStatus.CREATED);
    }
     
    /**
    * 批量增加
    *
    * @date 2016年10月21日 下午5:02:47
    *
    * @param adxSspFinanceManagements
    * @return
    * @throws DaoException
    */
    @ApiOperation(value = "批量增加", httpMethod = "POST", response = RestResponse.class)
    @ApiImplicitParams({
    @ApiImplicitParam(name = "adxSspFinanceManagements", required = true, dataType = "List<AdxSspFinanceManagement>", paramType = "body") })
    @RequestMapping(value = "/batchAdd", method = RequestMethod.POST)
    @ResponseStatus(HttpStatus.CREATED)
    public RestResponse batchAdd(@RequestBody List<AdxSspFinanceManagement> adxSspFinanceManagements)
    throws DaoException {
    RestResponse restResponse = new RestResponse();
    restResponse.setStatus(RestResponse.OK);
    List<Long> ids = adxSspFinanceManagementService.batchAdd(adxSspFinanceManagements);
    LOG.info("ids:{}", ids);
    restResponse.setResult(ids);
    return restResponse;
    }
     
    /**
    * 修改
    *
    * @date 2016年10月21日 下午5:03:38
    *
    * @param adxSspFinanceManagement
    * @throws DaoException
    */
    @ApiOperation(value = "修改", httpMethod = "POST", response = RestResponse.class)
    @ApiImplicitParams({
    @ApiImplicitParam(name = "adxSspFinanceManagement", required = true, dataType = "AdxSspFinanceManagement", paramType = "body") })
    @RequestMapping(value = "/update", method = RequestMethod.POST)
    public void update(@RequestBody AdxSspFinanceManagement adxSspFinanceManagement) throws DaoException {
    LOG.info("adxSspFinanceManagement:{}", adxSspFinanceManagement);
    adxSspFinanceManagementService.updateNotNullField(adxSspFinanceManagement);
    }
     
    /**
    * 删除
    *
    * @date 2016年9月29日 下午7:27:57
    *
    * @param id
    * @return 删除了多少条
    * @throws DaoException
    */
    @ApiOperation(value = "删除", httpMethod = "POST", response = RestResponse.class)
    @ApiImplicitParams({ @ApiImplicitParam(name = "id", required = true, dataType = "Long", paramType = "path") })
    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
    public RestResponse delete(@PathVariable Long id) throws DaoException {
    RestResponse restResponse = new RestResponse();
    restResponse.setStatus(RestResponse.OK);
    int i = adxSspFinanceManagementService.deleteById(id);
    LOG.info("the number of delete:{}", i);
    restResponse.setResult(i);
    return restResponse;
    }
     
    /**
    * 批量删除
    *
    * @date 2016年9月29日 下午7:29:22
    *
    * @param id
    * @return 删除了多少条
    * @throws DaoException
    */
    @ApiOperation(value = "删除", httpMethod = "POST", response = RestResponse.class)
    @ApiImplicitParams({ @ApiImplicitParam(name = "id", required = true, dataType = "Long", paramType = "path") })
    @RequestMapping(value = "/batchDelete", method = RequestMethod.POST)
    public RestResponse batchDelete(@RequestBody List<Long> ids) throws DaoException {
    RestResponse restResponse = new RestResponse();
    int i = adxSspFinanceManagementService.batchDelete(ids);
    restResponse.setStatus(RestResponse.OK);
    restResponse.setResult(i);
    LOG.info("the number of delete:{}", i);
    return restResponse;
    }
    }


    展开全文
  • Swagger UI Console-crx插件

    2021-04-02 00:44:08
    语言:English Swagger UI Chrome应用 围绕Swagger UI的Chrome包装器(http://swagger.io/swagger-ui/)
  • SwaggerUI初探

    千次阅读 2019-04-27 20:06:15
    SwaggerUI介绍 SwaggerUI是我们小组在做课程作业,前后端交互需要API文档时,我无意间发现的一个工具。借助SwaggerUI,我们可以便捷的获得类似下方的可视化图形界面: 之后,我们便可以根据此“API文档”进行开发。...

    一、SwaggerUI介绍

    SwaggerUI是我们小组在做课程作业,前后端交互需要API文档时,我无意间发现的一个工具。借助SwaggerUI,我们可以便捷的获得类似下方的可视化图形界面:
    在这里插入图片描述
    之后,我们便可以根据此“API文档”进行开发。

    “Swagger UI 允许任何人(无论是你的开发团队还是最终用户)在没有任何实现逻辑的情况下对 API 资源进行可视化和交互。它(API文档)通过 Swagger 定义自动生成,可视化文档使得后端实现和客户端消费变得更加容易。” --SmartBear

    源码地址在这里

    二、SwaggerUI使用

    user服务为例。

    安装go-swagger

    $ go get github.com/go-swagger/go-swagger/cmd/swagger
    

    swagger:meta

    以下内容放在项目程序入口main.go中:

    // Copyright 2019 money-hub. All rights reserved.
    // Use of this source code is governed by a MIT-style
    // license that can be found in the LICENSE file.
    
    // money-hub MoneyDodo/personalTasks
    //
    // This documentation describes example APIs found under https://github.com/ribice/golang-swaggerui-example
    //
    //     Schemes: http
    //     Version: 1.0.0
    //     License: MIT http://opensource.org/licenses/MIT
    //
    //     Consumes:
    //     - application/json
    //
    //     Produces:
    //     - application/json
    //
    //     Security:
    //     - bearer
    //
    //     SecurityDefinitions:
    //     bearer:
    //          type: apiKey
    //          name: Authorization
    //          in: header
    //
    // swagger:meta
    

    1. money-hub MoneyDodo/personalTasks - 项目名称
    2. This documentation …… - 第二行为description
    3. Schemes - HTTP或HTTPS
    4. Version - API版本号
    5. License - 许可证
    6. Consumes、Produces - 表示request和response的数据类型
    7. Security - 授权按钮
    8. SecurityDefinitions - 安全类型定义
    点击Authorize会弹出如下提示框:其中即为JWT认证的相关信息
    在这里插入图片描述

    swagger:operation

    // swagger:operation PUT /api/users/{userid} users swaggPutReq
    // ---
    // summary: Update the user profile
    // description: Update the user profile with the profile. Also, you need to specify the user ID.
    // parameters:
    // - name: userid
    //   in: path
    //   description: id of user
    //   type: string
    //   required: true
    // - name: Body
    //   in: body
    //   schema:
    //     "$ref": "#/definitions/User"
    //   required: true
    // responses:
    //   "200":
    //	   "$ref": "#/responses/swaggNoReturnValue"
    //   "400":
    //	   "$ref": "#/responses/swaggBadReq"
    

    1. swagger:operation - 提示符,表示一个请求操作

    2. PUT - HTTP方法

    3. /api/users/{userid} - 路径

    4. users - 类似于路由分隔标签,将相同的分隔标签的请求归到同一组

    5. swaggPutReq - 此参数没有具体意义,单参数是强制性的,但是推荐不同请求使用不同的参数。命名格式可采用swaggXXXReq,若不同请求该参数一样,会出现很多bug。

    6. — - 分隔符,下方代码为YAML格式的swagger规范,缩进必须保持一致且正确,推荐使用两格缩进。否则将无法正常解析。

    7. summary - 标题,API的概括描述

    8. description - 描述,API的详细描述

    9. parameters - URL参数,此例子中为{userId},如果需要query的,可使用?name={name}来表示

    10. - name - 指定参数,此例子中为URL中的userId

    11. in - 表示此参数位于哪个部分,path表示位于URL路径中,body表示位于上传的request body

    12. description - 参数说明

    13. type - 指定参数类型

    14. required - 是否一定需要此参数

    15. schema - 当参数位于body中需要此参数,指定参数的数据结构,**"$ref": “#/definitions/XXX”**按照此种格式写即可,XXX为定义的model文件(并非swagger/model.go)中的具体的数据类型,具体原因尚未搞懂。

    16. responses - 说明返回类型。

    17. “200” - 200表示状态码,我用200表示成功的请求;"$ref": "#/responses/swaggNoReturnValue"按照此格式来书写,其中swaggNoReturnValue定义在swagger/model.go文件中,使用到了swagger:response

    // HTTP status code 200 and no return value
    // swagger:response swaggNoReturnValue
    type swaggNoReturnValue struct {
    	// in:body
    	Body struct {
    		// HTTP Status Code 200
    		Status bool `json:"status"`
    		// Detailed error message
    		Errinfo string `json:"errinfo"`
    	}
    }
    
    • 第一行注释:尽量书写,会体现在swaggerui
    • 第二行注释:swagger:response为提示符,swaggNoReturnValue为下方数据类型的一个tag,这两者共同组成了**"$ref": “#/responses/swaggNoReturnValue”**
    • 数据结构中,有三个属性:StatusErrinfoData,上述结构中没有返回值,所以取消了最后一个参数。

    18. “400” - 400表示状态码,我用400来表示失败的请求。返回格式说明与上述过程一致。

    swagger:route

    // swagger:route POST /api/users users swaggCreateUserReq
    // Create a new user with the profile.
    // If the user's id is "exists", error will be returned.
    // responses:
    //   200: swaggNoReturnValue
    //   400: swaggBadReq
    

    swagger:route 是简单 API 的短注释,它适用于没有输入参数(路径/查询参数)的 API,如果API存在users/{userid}或者users/search?name={name}类型的参数,则必须使用swagger:operation
    1. swagger:route - 提示符,表示一个请求操作
    2. POST - HTTP方法
    3. /api/users - 路径
    4. users - 类似于路由分隔标签,将相同的分隔标签的请求归到同一组
    5. swaggCreateUserReq - 用于请求上传的参数
    参数定义在swagger/model.go文件中,使用到swagger:parameters

    // Create User request
    // swagger:parameters swaggCreateUserReq
    type swaggCreateUserReq struct {
    	// in:body
    	Body model.User
    }
    
    • 第一行注释:描述此参数
    • 第二行注释:swagger:parameters表示请求参数提示符,swaggCreateUserReq为请求的参数ID值。
    • 第三行:结构体名称没有必要和swagger:parameters后的参数ID值保持一致,但推荐命名相同
    • 第四行注释:in:body或者in:query表示包含此参数的位置
    • 第五行为实际的内嵌结构
      6. Create a new user with the profile. - 摘要(标题),在第一个句号.之前的是标题,如果没有句号,则这些注释会被作为描述
      7. If the user’s id is “exists”…… - 描述,在第一个句号后面的为描述
      8. responses - 说明返回类型。
      9. 200: swaggNoReturnValue - 简写,表明200返回值为swaggNoReturnValue
      10. 400: swaggBadReq - 简写,表示400返回值为swaggerBadReq

    【说明】swagger:parameters & swagger:response已在上述操作中详细说明,不在叙述。

    三、运行SwaggerUI

    Github swagger-ui中克隆项目到本地,然后拷贝其中的dist文件夹到我们的项目文件下。
    在这里插入图片描述
    其中dist文件夹即为克隆的项目中的distmodel.go为我们定义的swagger:parametersswagger:response所在的文件;main.goswaggerui的服务器文件。

    • 修改swagger/swaggerui/dist/index.html中的url
    const ui = SwaggerUIBundle({
      url: "./swagger.user.json",
      dom_id: '#swagger-ui',
      ……
    })
    
    • 定义main.go
    package main
    
    import "net/http"
    
    func main() {
    	fs := http.FileServer(http.Dir("swagger/swaggerui/dist"))
    	http.Handle("/swaggerui/", http.StripPrefix("/swaggerui/", fs))
    	http.ListenAndServe(":8000", nil)
    }
    
    • 启动服务器
      在项目根目录下:go run swagger/swaggerui/main.go

    四、效果图

    打开浏览器localhost:8000/swaggerui/
    在这里插入图片描述
    在这里插入图片描述
    swaggerui的动态交互并没有实现,只是将其作为API的展示文档,还需要进一步的学习。

    参考链接:
    https://www.ribice.ba/serving-swaggerui-golang/
    https://www.ribice.ba/swagger-golang/

    展开全文
  • 招摇的用户界面 这是 Swagger UI ( ) 的来源,其形式可以轻松部署到 PaaS。 它当前默认为 ,如果它在本地主机上运行,​​它是默认的 OpenShift v3 API 端点。
  • 一个模板,用于通过akka http生成swagger ui。 带有Akka HTTP的Swagger UI 该存储库包含一个示例代码库,用于使用akka http生成swagger ui。 您可以阅读更多关于扬鞭UI和阿卡HTTP从。 如何设置? 克隆应用程序 sbt...
  • play-swagger-ui Playframework 1.3模块可将swagger ui集成到您的应用程序中。 将其添加到您的项目 将依赖项放入您的dependencies.yml文件中: require: - michiruf -> swagger_ui 0.0.1 定义存储库以从github...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,411
精华内容 12,564
关键字:

swaggerui