zoukankan      html  css  js  c++  java
  • Abp集成Swagger的最佳实践

    1.在项目中添加nuget包 Abp.Web.Api.SwaggerTool

    2.在项目Abp模块的DependsOn添加AbpWebApiSwaggerToolModule

    Run It,启动项目,访问/swagger/ui/index 就打开熟悉的swagger-ui界面,项目中webapi和动态Api的接口都出现了。

     Abp.Web.Api.SwaggerTool作为swagger的增强包,内部实现了很多有用的功能并提供了一些最佳实践,用户无需在意Swagger的集成问题。

    项目源码https://github.com/yuzukwok/Abp.Web.Api.SwaggerTool 大家可以提出issue 或者fork下

    功能介绍

    1.远程代理生成

    我们可以根据swagger文档所描述的Api元信息生成访问这些Api的远程代理,目前支持Csharp的WebApiClient,Jquery或者AngularJS等代码。

    用户访问以下endpoint获取代理的代码

    /swagger/proxy/CSharp
    /swagger/proxy/JQueryCallbacks
    /swagger/proxy/JQueryPromises
    /swagger/proxy/AngularJS
    /swagger/proxy/Angular2

    2.转换swagger文档为POSTMAN支持的导入格式,比POSTMAN自带的导入功能有更强的通用性

    访问点:/swagger/postman

    按文件夹分类,支持中文注释,POST接口自动生成了sample数据

    3. 可以直接在swagger-ui上搜索接口,目前只支持搜索api地址

    /swagger/docs/{apiVersion}/{key to search by path}

    4.6种的swagger-ui样式,摆脱默认的swagger-ui

    https://github.com/ostranme/swagger-ui-themes

    5.强化Swashbuckle:优化枚举显示,自动使用Display特性的文本,WebApiController类上加DisplayName特性可以在swagger-ui上显示Controller的注释

    配置文件说明

    类库采用lts.Configuation作为配置文件约定,默认无需配置文件

    在网站根目录配置.config 文件夹,新建一个SwaggerToolSettings.json 文件 ,文件内容如下

    {
      "enable": true, //是否启用swagger集成
      "theme": "flattop", //主题名称 flattop,muted,newspaper,outline,monokai,feeling-blue
    "HideAbpAutogeneratedApi": false, //是否隐藏Abp框架生成的Api接口
    "HideDocPathAttributeName": "XX", //Api上标注此特性的话,则不在swagger中生成
    "HideDocPaths": ["path1"],//Api中包含这些字符,则不在swagger中生成
      "CSharpGen": {
        "ClassName": "ApiClient", //C#代理生成的类名
        "Namespace": "ApiServices" //C#代理生成的命名空间
      },
      "TypeScriptGen": {
        "ClassName": "Client", //JS代理生成的类名
        "Namespace": "ApiServices" //JS代理生成的命名空间
      },
      "PostmanGen": {
        "name": "ApiServices" //名称
      },
      "XmlCommentFiles": ["xxx.xml"]//xml注释的文件名
    
    
    }
  • 相关阅读:
    Python的socket模块详解
    C语言中输入输出重定向,freopen的用法和实例
    JPG BMP TIF PNG 图像编码压缩率和编解码时间比较
    FFMPEG 内部YUV转RGB过程
    STL 中的数据结构
    FFmpeg 深度学习 livevideoStack 笔记
    Docker 编译tensorflow-1.14.0 静态库
    CMake 笔记
    Torch 学习
    Docker 学习笔记
  • 原文地址:https://www.cnblogs.com/yuzukwok/p/5724324.html
Copyright © 2011-2022 走看看