精华内容
下载资源
问答
  • spring-mvc使用swagger生成API说明文档

    万次阅读 热门讨论 2018-09-28 19:27:43
    使用swagger生成API说明文档 本文由个人总结,如需转载使用请标明原著及原文地址 明明没有导出还是好多人留言 →_→ 好烦啊 所以我浪费了半天时间挖了个swagger导出的坑 ↓↓↓ 自己去看吧 ... ...

    使用swagger生成API说明文档

    本文由个人总结,如需转载使用请标明原著及原文地址

    明明没有导出还是好多人留言  →_→  好烦啊  所以我浪费了半天时间挖了个swagger导出的坑    ↓↓↓  自己去看吧

     https://blog.csdn.net/qq_36911145/article/details/103970876

    SwaggerDemo,jar包使用maven进行管理,还没了解maven的小伙伴可能有无法使用的情况

    在做前后端分离的项目时,后端人员总是要写接口文档给其他使用者,大家都知道,写接口文档是一件吃力不讨好的事,而swagger就是为了解决这个问题而存在的,不仅能提供接口文档,还能提供简单的传参测试

    要使用swagger,首先你要有一个spring项目

    1.导包

        <dependency>
          <groupId>io.springfox</groupId>
          <artifactId>springfox-swagger2</artifactId>
          <version>2.9.2</version>
        </dependency>
        <dependency>
          <groupId>io.springfox</groupId>
          <artifactId>springfox-swagger-ui</artifactId>
          <version>2.9.2</version>
        </dependency>

    我这使用maven统一管理jar包,在pom.xml中加入上面两个dependency,maven就能自动下载对应jar包,不了解maven的小伙伴自行在百度上找jar包,然后手动导入项目

    springfox-swagger2-vesion.jar

    springfox-swagger-ui-vesion.jar

    2.写一个swagger配置类

    package cn.ycyy.controller;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    /**
     * @author Devil
     * @create 2018-09-26 19:16
     */
    @EnableSwagger2
    @ComponentScan(basePackages = {"cn.ycyy.controller"})
    @Configuration
    public class SwaggerConfig extends WebMvcConfigurationSupport{
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.any())
                    .paths(PathSelectors.any())
                    .build();
        }
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("《SwaggerDemo的演示案例--》")//标题
                    .description("description:项目摘要")//描述
                    .termsOfServiceUrl("http://www.google.com.hk")//(不可见)条款地址,公司内部使用的话不需要配
                    .contact(new Contact("Devil", "https://blog.csdn.net/qq_36911145", "969430169@qq.com"))//作者信息
                    .version("6.6.6")//版本号
                    .build();
        }
    }
    

    创建的SwaggerConfig要继承WebMvcConfigurationSupport

    @EnableSwagger2 swagger2启动注解
    @ComponentScan(basePackages = {"cn.ycyy.controller"}) 指定需要生成API文档的类所在的包路径
    @Configuration 声明这是一个配置类

    createRestApi方法不需要更改,主要用于swagger的初始化设置,包括扫描API注解路径等,用我提供的createRestApi默认扫描当前项目全部路径,这里的扫描与上面的@ComponentScan不同,这里扫描的不会显示在swagger-ui(swaggerAPI文档可视化界面,最后会说)上

    apiInfo里的参数设置对应效果如下图所示

     

    SwaggerConfig文件必须放在spring注解扫描器能扫描到的位置,例如说我的项目都放在cn.ycyy项目下,我指定扫描路径cn.ycyy那么spring就能把整个项目的注解都扫描到

        <context:component-scan base-package="cn.ycyy">
    		<context:exclude-filter type="annotation"
    			expression="org.springframework.stereotype.Controller" />
    	</context:component-scan>

    然后将项目启动发布到tomcat上,就能访问swaggerAPI了

    访问的URL也是个固定的格式

    http://ip地址:端口/项目名/swagger-ui.html#/

    3.配置api生成

    在先前说了,这里只会显示@ComponentScan(basePackages = {"cn.ycyy.controller"}),这个路径下的类生成的API

    我的测试案例中只写了一个UserController所以这里只显示,UserController及里面的方法

    UserController代码如下

    package cn.ycyy.controller;
    
    import cn.ycyy.bean.User;
    import cn.ycyy.service.UserService;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import io.swagger.annotations.ApiParam;
    import io.swagger.models.HttpMethod;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.validation.BindingResult;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import javax.validation.Valid;
    import java.util.List;
    
    /**
     * @author Devil
     * @create 2018-09-28 15:36
     */
    @Controller
    @Api(value="aaaaaaa",description="User的相关信息接口")
    public class UserController {
        @Autowired
        private UserService userService;
        @RequestMapping("/getAll")
        @ResponseBody
        @ApiOperation(value="获取所有user",notes="获取所有user,无需参数", httpMethod = "POST")
        public String getAll(){
            //查出的所有部门信息
            List<User> list = userService.selectAll();
            return list.toString();
        }
        @RequestMapping("/getOne")
        @ResponseBody
        @ApiOperation(value="获取单个user",notes="获取单个user,需参数", httpMethod = "POST")
        public String getOne(@Valid User user, BindingResult result){
            //查出的所有部门信息
            List<User> list = userService.selectBy(user);
            return list.toString();
        }
        @RequestMapping("/getOneByName")
        @ResponseBody
        @ApiOperation(value="获取单个user",notes="获取单个user,需参数", httpMethod = "POST")
        public String getOneByName(@ApiParam(value = "用户名", required = true)String name){
    
            return "something";
        }
    }
    

    在类上加上@Api注解

    以下参数可不指定

    value 在swagger-ui上不显示
    description

    在swagger-ui上有显示,可以当做备注使用,描述这个类的信息

    在新版本的swagger2中description已被淘汰,可以用tags代替,但是不更改也不会影响使用

    在方法上加上@ApiOperation注解

    以下参数可不指定

    value 未展开状态方法备注信息
    notes 展开状态下方法备注信息,和value相比,value是未展开状态下的备注,一般会写的比较简短,而notes可以写的比较详细
    httpMethod

    指定http模式,参数有"POST"、"DELETE"、"GET"、"HEAD"等

    如果方法需要前端传递参数,可使用@ApiParam注解

    value 参数备注信息
    required 是否为必填项true为必填

    如果方法用对象入参的话,在实体类中对属性加@ApiModelProperty注解

    value 类属性备注信息

    例如我有个方法的参数用User,那么我User类如下配置

    package cn.ycyy.bean;
    
    import io.swagger.annotations.ApiModelProperty;
    
    /**
     * @author Devil
     * @create 2018-09-28 15:24
     */
    public class User {
        @ApiModelProperty(value="用户名")
        private String name;
        @ApiModelProperty(value="密码")
        private String password;
        @ApiModelProperty(value="性别")
        private String gender;
        @ApiModelProperty(value="年龄")
        private Integer age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getGender() {
            return gender;
        }
    
        public void setGender(String gender) {
            this.gender = gender;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    }
    

    效果如下所示

    API文档中会将User自动分解成User的属性

    4.注解全参数

    以下是swagger2注解中的全参数,有兴趣可以都试试

    @Api 
    Api 标记可以标记一个Controller类做为swagger 文档资源,使用方式

    属性名称

    备注

    value

    url的路径值

    tags

    如果设置这个值、value的值会被覆盖

    description

    对api资源的描述

    basePath

    基本路径可以不配置

    position

    如果配置多个Api 想改变显示的顺序位置

    produces

    For example, “application/json, application/xml”

    consumes

    For example, “application/json, application/xml”

    protocols

    Possible values: http, https, ws, wss.

    authorizations

    高级特性认证时配置 

    hidden

    配置为true 将在文档中隐藏

    @ApiOperation每一个url资源的定义,使用方式

    属性名称

    备注

    value

    url的路径值

    tags

    如果设置这个值、value的值会被覆盖

    description

    对api资源的描述

    basePath

    基本路径可以不配置

    position

    如果配置多个Api 想改变显示的顺序位置

    produces

    For example, “application/json, application/xml”

    consumes

    For example, “application/json, application/xml”

    protocols

    Possible values: http, https, ws, wss.

    authorizations

    高级特性认证时配置

    hidden

    配置为true 将在文档中隐藏

    response

    返回的对象

    responseContainer

    这些对象是有效的 “List”, “Set” or “Map”.,其他无效

    httpMethod

    “GET”, “HEAD”, “POST”, “PUT”, “DELETE”, “OPTIONS” and “PATCH”

    code

    http的状态码 默认 200

    extensions

    扩展属性

    @ApiParam标记
    public ResponseEntity createUser(@RequestBody @ApiParam(value = “user”, required = true) User user)

    属性名称

    备注

    name

    属性名称

    value

    属性值

    defaultValue

    默认属性值

    allowableValues

    可以不配置

    required

    是否属性必填

    access

    不过多描述

    allowMultiple

    默认为false

    hidden

    隐藏该属性

    example

    举例子

    @ApiImplicitParam对容器的描述

    属性名称

    备注

    name

    属性名称

    value

    属性值

    defaultValue

    默认值

    allowableValues

    可以不可配置

    required

    是否属性必填

    access

    不可过多描述

    allowMutiple

    默认为false

    dataType

    数据类型

    paramType

    参数类型

    @ApiResponse

    属性名称

    备注

    code

    http的状态码

    message

    描述

    response

    默认响应类 Void

    reference

    参考ApiOperation中配置

    responseHeaders

    参考 ResponseHeader 属性配置说明

    responseContainer

    参考ApiOperation中配置

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • jxl api说明文档

    千次下载 热门讨论 2007-08-21 15:06:40
    jxl api说明文档 不包含pai包
  • 平时开发中在使用.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者的心情。...

    我们在平时Web API接口中正常使用Swagger,现在我使用.Net Core 开发Web API也同时使用了Swagger,Swagger就是最受欢迎的REST API文档生成工具之一,在这里我就大家简单说明一下如何在.Net Core 中使用Swagger。

    一、为什么使用Swagger作为REST APIs文档生成工具

    1. Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。
    2. Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。
    3. Swagger 文件可以在许多不同的平台上从代码注释中自动生成。
    4. Swagger 有一个强大的社区,里面有许多强悍的贡献者。

    二、 .Net Core中如何使用Swagger生成api说明文档呢

    1. Swashbuckle.AspNetCore 是一个开源项目,用于生成 .NET Core Web API 的 Swagger 文档。
    2. NSwag 是另一个用于将 Swagger UI 或 ReDoc 集成到 .NET Core Web API 中的开源项目。 它提供了为 API 生成 C# 和 TypeScript 客户端代码的方法。

    三、下面以Swashbuckle.AspNetCore为例为大家进行展示

    (1).Swashbuckle由哪些组成部分呢?

    • Swashbuckle.AspNetCore.Swagger:将 SwaggerDocument 对象公开为 JSON 终结点的 Swagger 对象模型和中间件。
    • Swashbuckle.AspNetCore.SwaggerGen:从路由、控制器和模型直接生成 SwaggerDocument 对象的 Swagger 生成器。 它通常与 Swagger 终结点中间件结合,以自动公开 Swagger JSON。
    • Swashbuckle.AspNetCore.SwaggerUI:Swagger UI 工具的嵌入式版本。 它解释 Swagger JSON 以构建描述 Web API 功能的可自定义的丰富体验。 它包括针对公共方法的内置测试工具。

    (2).如何使用vs2017安装Swashbuckle呢?

    • 从“管理 NuGet 程序包”对话框中:
    • 右键单击“解决方案资源管理器” > “管理 NuGet 包”中的项目
    • 将“包源”设置为“nuget.org”
    • 在搜索框中输入“Swashbuckle.AspNetCore”
    • 从“浏览”选项卡中选择“Swashbuckle.AspNetCore”包,然后单击“安装”

    (3.添加并配置 Swagger 中间件

    首先引入命名空间:

    using Swashbuckle.AspNetCore.Swagger;

    将 Swagger 生成器添加到 Startup.ConfigureServices 方法中的服务集合中:

      public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc();
                //注册Swagger生成器
                services.AddSwaggerGen(c =>
                {
                    c.SwaggerDoc("v1", new Info
                    {
                        Version = "v1",
                        Title = "ShengZhen iCarNetCore API"                                    
                    });
                    //为 Swagger JSON and UI设置xml文档注释路径
                    //获取应用程序所在目录(绝对路径,不受工作目录影响,建议采用此方法获取路径使用windwos&Linux)
                    var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
                    var xmlPath = Path.Combine(basePath, "iCarNetCoreAPI.xml");
                    c.IncludeXmlComments(xmlPath);
                });
            }

    Startup.Configure方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务:

    //启用中间件服务生成Swagger作为JSON终结点
    app.UseSwagger();
    //启用中间件服务对swagger-ui,指定Swagger JSON终结点
    app.UseSwaggerUI(c =>
    { c.SwaggerEndpoint("/swagger/v1/swagger.json", "iCarNetCoreAPI接口文档");
    });

    启动应用,并导航到 http://localhost:<port>/swagger/v1/swagger.json生成的描述终结点的文档显示如下json格式。


    可在 http://localhost:<port>/swagger 找到 Swagger UI, 通过 Swagger UI 浏览 API文档,如下所示:


    要在应用的根 (http://localhost:<port>/) 处提供 Swagger UI,请将 RoutePrefix 属性设置为空字符串:

    app.UseSwaggerUI(c =>
    {
     c.SwaggerEndpoint("/swagger/v1/swagger.json", "iCarNetCoreAPI接口文档");
        c.RoutePrefix = string.Empty;
    });

    (4).Swagger的高级用法(自定义以及扩展)

    A.使用Swagger为API文档增加说明信息

    在 AddSwaggerGen 方法的进行如下的配置操作会添加诸如作者、许可证和说明信息等:

      public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc();
                //注册Swagger生成器
                services.AddSwaggerGen(c =>
                {
                    c.SwaggerDoc("v1", new Info
                    {
                        Version = "v1",
                        Title = "ShengZhen iCarNetCore API",
                        Description = "NetCore API Introduce",
                        TermsOfService = "None",
                        Contact = new Contact
                        {
                            Name = "Yang Hao Long,Harlan",
                            Email = string.Empty,
                            Url = "https://blog.csdn.net/yanghaolong"
                        },
                        License = new License
                        {
                            Name = "许可证名字",
                            Url = "https://blog.csdn.net/yanghaolong"
                        }
                    });
                    //为 Swagger JSON and UI设置xml文档注释路径
                    //获取应用程序所在目录(绝对路径,不受工作目录影响,建议采用此方法获取路径使用windwos&Linux)
                    var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
                    var xmlPath = Path.Combine(basePath, "iCarNetCoreAPI.xml");
                    c.IncludeXmlComments(xmlPath);
                   // c.OperationFilter<HttpHeaderOperation>(); // 添加httpHeader参数
                  //  c.OperationFilter<ApiHttpHeaderFilter>(); // 添加httpHeader参数
                });
            }

    Swagger UI 显示版本的信息如下图所示:


    B.为接口方法添加注释

    大家先点击下api,展开如下图所示,可以没有注释啊,怎么来添加注释呢?

    C.启用XML 注释

    可使用以下方法启用 XML 注释:

    • 右键单击“解决方案资源管理器”中的项目,然后选择“属性”
    • 查看“生成”选项卡的“输出”部分下的“XML 文档文件”框
    • 启用 XML 注释后会为未记录的公共类型和成员提供调试信息。如果出现很多警告信息  例如,以下消息指示违反警告代码 1591:如果你有强迫症,想取消警告怎么办呢?可以按照下图所示进行取消.

     注意:

    ​ 1.对于 Linux 或非 Windows 操作系统,文件名和路径区分大小写。 例如,“iCarNetCoreAPI.xml”文件在 Windows 上有效,但在 CentOS 上无效。

    ​ 2.获取应用程序路径,建议采用Path.GetDirectoryName(typeof(Program).Assembly.Location)这种方式或者·AppContext.BaseDirectory这样来获取.

    按照下面所示添加文档注释,如下所示

    /// <summary>
    /// 字符串返回操作POST
    /// </summary>
    /// <remarks>
    /// 例子:
    /// api/v1/PostOkResult/test
    /// </remarks>
    /// <param name="strValue">查询参数</param>
    /// <returns></returns>
    [HttpPost, Route("api/v1/PostOkResult")]
    public string ReturnString(string strValue)
       {
           return strValue + "  Success";
       }

    重新生成并运行项目查看一下注释出现了没有:


    好了,今天的在.NET Core WebAPI使用Swagger生成api说明文档看这篇就够了的教程就到这里了。希望能够对大家学习在.NET Core中使用Swagger生成api文档有所帮助.

    四、总结

    ​    本文从手工书写api文档的痛处说起,进而引出Swagger这款自动生成api说明文档的工具!然后通过通俗易懂的文字结合图片为大家演示了如何在一个.NET Core WebAPI中使用SwaggerUI生成api说明文档。最后又为大家介绍了一些.NET Core 中Swagger的一些高级用法!希望对大家在ASP.NET Core中使用Swagger有所帮助!

    展开全文
  • 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者的心情。或者详细点,或者...
        

    引言

    在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者的心情。或者详细点,或者简单点。那么有没有一种快速有效的方法来构建api说明文档呢?答案是肯定的, Swagger就是最受欢迎的REST APIs文档生成工具之一!

    为什么使用Swagger作为REST APIs文档生成工具

    1. Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。
    2. Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。
    3. Swagger 文件可以在许多不同的平台上从代码注释中自动生成。
    4. Swagger 有一个强大的社区,里面有许多强悍的贡献者。

    asp.net core中如何使用Swagger生成api说明文档呢

    1. Swashbuckle.AspNetCore 是一个开源项目,用于生成 ASP.NET Core Web API 的 Swagger 文档。
    2. NSwag 是另一个用于将 Swagger UI 或 ReDoc 集成到 ASP.NET Core Web API 中的开源项目。 它提供了为 API 生成 C# 和 TypeScript 客户端代码的方法。

    下面以Swashbuckle.AspNetCore为例为大家进行展示

    Swashbuckle由哪些组成部分呢?

    • Swashbuckle.AspNetCore.Swagger:将 SwaggerDocument 对象公开为 JSON 终结点的 Swagger 对象模型和中间件。
    • Swashbuckle.AspNetCore.SwaggerGen:从路由、控制器和模型直接生成 SwaggerDocument 对象的 Swagger 生成器。 它通常与 Swagger 终结点中间件结合,以自动公开 Swagger JSON。
    • Swashbuckle.AspNetCore.SwaggerUI:Swagger UI 工具的嵌入式版本。 它解释 Swagger JSON 以构建描述 Web API 功能的可自定义的丰富体验。 它包括针对公共方法的内置测试工具。

    如何使用vs2017安装Swashbuckle呢?

    • 从“程序包管理器控制台”窗口进行安装
    • 转到“视图” > “其他窗口” > “程序包管理器控制台”
    • 导航到包含 TodoApi.csproj 文件的目录
    • 请执行以下命令 ·Install-Package Swashbuckle.AspNetCore
    • 1
    • 从“管理 NuGet 程序包”对话框中:
    • 右键单击“解决方案资源管理器” > “管理 NuGet 包”中的项目
    • 将“包源”设置为“nuget.org”
    • 在搜索框中输入“Swashbuckle.AspNetCore”
    • 从“浏览”选项卡中选择“Swashbuckle.AspNetCore”包,然后单击“安装”
    • 2

    添加并配置 Swagger 中间件

    首先引入命名空间:

    using Swashbuckle.AspNetCore.Swagger;

    将 Swagger 生成器添加到 Startup.ConfigureServices 方法中的服务集合中:

    //注册Swagger生成器,定义一个和多个Swagger 文档
    services.AddSwaggerGen(c =>
    {
         c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
    });

    在 Startup.Configure 方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务:

    //启用中间件服务生成Swagger作为JSON终结点
    app.UseSwagger();
    //启用中间件服务对swagger-ui,指定Swagger JSON终结点
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
    });

    启动应用,并导航到 http://localhost:<port>/swagger/v1/swagger.json。 生成的描述终结点的文档显示如下json格式。

    1530193531880

    可在 http://localhost:<port>/swagger 找到 Swagger UI。 通过 Swagger UI 浏览 API文档,如下所示。

    1530193586713

    要在应用的根 (http://localhost:<port>/) 处提供 Swagger UI,请将 RoutePrefix 属性设置为空字符串:

    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
        c.RoutePrefix = string.Empty;
    });

    Swagger的高级用法(自定义以及扩展)

    使用Swagger为API文档增加说明信息

    在 AddSwaggerGen 方法的进行如下的配置操作会添加诸如作者、许可证和说明信息等:

    //注册Swagger生成器,定义一个和多个Swagger 文档
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info
        {
            Version = "v1",
            Title = "yilezhu's API",
            Description = "A simple example ASP.NET Core Web API",
            TermsOfService = "None",
            Contact = new Contact
            {
                Name = "依乐祝",
                Email = string.Empty,
                Url = "http://www.cnblogs.com/yilezhu/"
            },
            License = new License
            {
                Name = "许可证名字",
                Url = "http://www.cnblogs.com/yilezhu/"
            }
        });
    });

    wagger UI 显示版本的信息如下图所示:

    1530194050313

    为了防止博客被转载后,不保留本文的链接,特意在此加入本文的链接:https://www.cnblogs.com/yilezhu/p/9241261.html

    为接口方法添加注释

    大家先点击下api,展开如下图所示,可以没有注释啊,怎么来添加注释呢?

    1530194181832

    按照下图所示用三个/添加文档注释,如下所示

    /// <summary>
    /// 这是一个api方法的注释
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    public ActionResult<IEnumerable<string>> Get()
    {
         return new string[] { "value1", "value2" };
    }

    然后运行项目,回到swaggerUI中去查看注释是否出现了呢

    1530194413243

    还是没有出现,别急,往下看!

    启用XML 注释

    可使用以下方法启用 XML 注释:

    • 右键单击“解决方案资源管理器”中的项目,然后选择“属性”
    • 查看“生成”选项卡的“输出”部分下的“XML 文档文件”框
    • 1530194540621

    启用 XML 注释后会为未记录的公共类型和成员提供调试信息。如果出现很多警告信息  例如,以下消息指示违反警告代码 1591:

    warning CS1591: Missing XML comment for publicly visible type or member 'TodoController.GetAll()'

    如果你有强迫症,想取消警告怎么办呢?可以按照下图所示进行取消

    1530194772758

    注意上面生成的xml文档文件的路径,

     注意:

    ​ 1.对于 Linux 或非 Windows 操作系统,文件名和路径区分大小写。 例如,“SwaggerDemo.xml”文件在 Windows 上有效,但在 CentOS 上无效。

    ​ 2.获取应用程序路径,建议采用Path.GetDirectoryName(typeof(Program).Assembly.Location)这种方式或者·AppContext.BaseDirectory这样来获取

    //注册Swagger生成器,定义一个和多个Swagger 文档
                services.AddSwaggerGen(c =>
                {
                    c.SwaggerDoc("v1", new Info
                    {
                        Version = "v1",
                        Title = "yilezhu's API",
                        Description = "A simple example ASP.NET Core Web API",
                        TermsOfService = "None",
                        Contact = new Contact
                        {
                            Name = "依乐祝",
                            Email = string.Empty,
                            Url = "http://www.cnblogs.com/yilezhu/"
                        },
                        License = new License
                        {
                            Name = "许可证名字",
                            Url = "http://www.cnblogs.com/yilezhu/"
                        }
                    });
                    // 为 Swagger JSON and UI设置xml文档注释路径
                    var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);//获取应用程序所在目录(绝对,不受工作目录影响,建议采用此方法获取路径)
                    var xmlPath = Path.Combine(basePath, "SwaggerDemo.xml");
                    c.IncludeXmlComments(xmlPath);
                });

    重新生成并运行项目查看一下注释出现了没有

    1530195392840

    通过上面的操作可以总结出,Swagger UI 显示上述注释代码的 <summary> 元素的内部文本作为api大的注释!

    当然你还可以将 remarks 元素添加到 Get 操作方法文档。 它可以补充 <summary> 元素中指定的信息,并提供更可靠的 Swagger UI。 <remarks> 元素内容可包含文本、JSON 或 XML。 代码如下:

     /// <summary>
     /// 这是一个带参数的get请求
     /// </summary>
     /// <remarks>
     /// 例子:
     /// Get api/Values/1
     /// </remarks>
     /// <param name="id">主键</param>
     /// <returns>测试字符串</returns>          
     [HttpGet("{id}")]
     public ActionResult<string> Get(int id)
     {
           return $"你请求的 id 是 {id}";
     }

    重新生成下项目,当好到SwaggerUI看到如下所示:

    1530196170696

    描述响应类型

    摘录自:https://www.cnblogs.com/yanbigfeg/p/9232844.html

    接口使用者最关心的就是接口的返回内容和响应类型啦。下面展示一下201和400状态码的一个简单例子:

    我们需要在我们的方法上添加:[ProducesResponseType(201)][ProducesResponseType(400)]

    然后添加相应的状态说明:

    最终代码应该是这个样子:

     /// <summary>
     /// 这是一个带参数的get请求
     /// </summary>
     /// <remarks>
     /// 例子:
     /// Get api/Values/1
     /// </remarks>
     /// <param name="id">主键</param>
     /// <returns>测试字符串</returns> 
     /// <response code="201">返回value字符串</response>
    /// <response code="400">如果id为空</response>  
     // GET api/values/2
    [HttpGet("{id}")]
    [ProducesResponseType(201)]
    [ProducesResponseType(400)]
    public ActionResult<string> Get(int id)
    {
         return $"你请求的 id 是 {id}";
    }
    

    效果如下所示
    状态相应效果

    使用SwaggerUI测试api接口

    下面我们通过一个小例子通过SwaggerUI调试下接口吧

    1. 点击一个需要测试的API接口,然后点击Parameters左右边的“Try it out ” 按钮
    2. 在出现的参数文本框中输入参数,如下图所示的,输入参数2
    3. 点击执行按钮,会出现下面所示的格式化后的Response,如下图所示

    1530196606406

    好了,今天的在ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了的教程就到这里了。希望能够对大家学习在ASP.NET Core中使用Swagger生成api文档有所帮助!

    总结

    ​ 本文从手工书写api文档的痛处说起,进而引出Swagger这款自动生成api说明文档的工具!然后通过通俗易懂的文字结合图片为大家演示了如何在一个ASP.NET Core WebApi中使用SwaggerUI生成api说明文档。最后又为大家介绍了一些ASP.NET Core 中Swagger的一些高级用法!希望对大家在ASP.NET Core中使用Swagger有所帮助!

    展开全文
  • Echarts API说明文档

    万次阅读 2018-04-19 15:36:51
    官网链接:http://echarts.baidu.com/echarts2/doc/example/themeDesigner.htmltheme = { // 全图默认背景 // backgroundColor: 'rgba(0,0,0,0)', // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd32'...

    官网链接:http://echarts.baidu.com/echarts2/doc/example/themeDesigner.html

    theme = {
        // 全图默认背景
        // backgroundColor: 'rgba(0,0,0,0)',
        
        // 默认色板
        color: ['#ff7f50','#87cefa','#da70d6','#32cd32','#6495ed',
                '#ff69b4','#ba55d3','#cd5c5c','#ffa500','#40e0d0',
                '#1e90ff','#ff6347','#7b68ee','#00fa9a','#ffd700',
                '#6699FF','#ff6666','#3cb371','#b8860b','#30e0e0'],
    
    
        // 图表标题
        title: {
            x: 'left',                 // 水平安放位置,默认为左对齐,可选为:
                                       // 'center' ¦ 'left' ¦ 'right'
                                       // ¦ {number}(x坐标,单位px)
            y: 'top',                  // 垂直安放位置,默认为全图顶端,可选为:
                                       // 'top' ¦ 'bottom' ¦ 'center'
                                       // ¦ {number}(y坐标,单位px)
            //textAlign: null          // 水平对齐方式,默认根据x设置自动调整
            backgroundColor: 'rgba(0,0,0,0)',
            borderColor: '#ccc',       // 标题边框颜色
            borderWidth: 0,            // 标题边框线宽,单位px,默认为0(无边框)
            padding: 5,                // 标题内边距,单位px,默认各方向内边距为5,
                                       // 接受数组分别设定上右下左边距,同css
            itemGap: 10,               // 主副标题纵向间隔,单位px,默认为10,
            textStyle: {
                fontSize: 18,
                fontWeight: 'bolder',
                color: '#333'          // 主标题文字颜色
            },
            subtextStyle: {
                color: '#aaa'          // 副标题文字颜色
            }
        },
        
        // 图例
        legend: {
            orient: 'horizontal',      // 布局方式,默认为水平布局,可选为:
                                       // 'horizontal' ¦ 'vertical'
            x: 'center',               // 水平安放位置,默认为全图居中,可选为:
                                       // 'center' ¦ 'left' ¦ 'right'
                                       // ¦ {number}(x坐标,单位px)
            y: 'top',                  // 垂直安放位置,默认为全图顶端,可选为:
                                       // 'top' ¦ 'bottom' ¦ 'center'
                                       // ¦ {number}(y坐标,单位px)
            backgroundColor: 'rgba(0,0,0,0)',
            borderColor: '#ccc',       // 图例边框颜色
            borderWidth: 0,            // 图例边框线宽,单位px,默认为0(无边框)
            padding: 5,                // 图例内边距,单位px,默认各方向内边距为5,
                                       // 接受数组分别设定上右下左边距,同css
            itemGap: 10,               // 各个item之间的间隔,单位px,默认为10,
                                       // 横向布局时为水平间隔,纵向布局时为纵向间隔
            itemWidth: 20,             // 图例图形宽度
            itemHeight: 14,            // 图例图形高度
            textStyle: {
                color: '#333'          // 图例文字颜色
            }
        },
        
        // 值域
        dataRange: {
            orient: 'vertical',        // 布局方式,默认为垂直布局,可选为:
                                       // 'horizontal' ¦ 'vertical'
            x: 'left',                 // 水平安放位置,默认为全图左对齐,可选为:
                                       // 'center' ¦ 'left' ¦ 'right'
                                       // ¦ {number}(x坐标,单位px)
            y: 'bottom',               // 垂直安放位置,默认为全图底部,可选为:
                                       // 'top' ¦ 'bottom' ¦ 'center'
                                       // ¦ {number}(y坐标,单位px)
            backgroundColor: 'rgba(0,0,0,0)',
            borderColor: '#ccc',       // 值域边框颜色
            borderWidth: 0,            // 值域边框线宽,单位px,默认为0(无边框)
            padding: 5,                // 值域内边距,单位px,默认各方向内边距为5,
                                       // 接受数组分别设定上右下左边距,同css
            itemGap: 10,               // 各个item之间的间隔,单位px,默认为10,
                                       // 横向布局时为水平间隔,纵向布局时为纵向间隔
            itemWidth: 20,             // 值域图形宽度,线性渐变水平布局宽度为该值 * 10
            itemHeight: 14,            // 值域图形高度,线性渐变垂直布局高度为该值 * 10
            splitNumber: 5,            // 分割段数,默认为5,为0时为线性渐变
            color:['#1e90ff','#f0ffff'],//颜色 
            //text:['高','低'],         // 文本,默认为数值文本
            textStyle: {
                color: '#333'          // 值域文字颜色
            }
        },
    
    
        toolbox: {
            orient: 'horizontal',      // 布局方式,默认为水平布局,可选为:
                                       // 'horizontal' ¦ 'vertical'
            x: 'right',                // 水平安放位置,默认为全图右对齐,可选为:
                                       // 'center' ¦ 'left' ¦ 'right'
                                       // ¦ {number}(x坐标,单位px)
            y: 'top',                  // 垂直安放位置,默认为全图顶端,可选为:
                                       // 'top' ¦ 'bottom' ¦ 'center'
                                       // ¦ {number}(y坐标,单位px)
            color : ['#1e90ff','#22bb22','#4b0082','#d2691e'],
            backgroundColor: 'rgba(0,0,0,0)', // 工具箱背景颜色
            borderColor: '#ccc',       // 工具箱边框颜色
            borderWidth: 0,            // 工具箱边框线宽,单位px,默认为0(无边框)
            padding: 5,                // 工具箱内边距,单位px,默认各方向内边距为5,
                                       // 接受数组分别设定上右下左边距,同css
            itemGap: 10,               // 各个item之间的间隔,单位px,默认为10,
                                       // 横向布局时为水平间隔,纵向布局时为纵向间隔
            itemSize: 16,              // 工具箱图形宽度
            featureImageIcon : {},     // 自定义图片icon
            featureTitle : {
                mark : '辅助线开关',
                markUndo : '删除辅助线',
                markClear : '清空辅助线',
                dataZoom : '区域缩放',
                dataZoomReset : '区域缩放后退',
                dataView : '数据视图',
                lineChart : '折线图切换',
                barChart : '柱形图切换',
                restore : '还原',
                saveAsImage : '保存为图片'
            }
        },
    
    
        // 提示框
        tooltip: {
            trigger: 'item',           // 触发类型,默认数据触发,见下图,可选为:'item' ¦ 'axis'
            showDelay: 20,             // 显示延迟,添加显示延迟可以避免频繁切换,单位ms
            hideDelay: 100,            // 隐藏延迟,单位ms
            transitionDuration : 0.4,  // 动画变换时间,单位s
            backgroundColor: 'rgba(0,0,0,0.7)',     // 提示背景颜色,默认为透明度为0.7的黑色
            borderColor: '#333',       // 提示边框颜色
            borderRadius: 4,           // 提示边框圆角,单位px,默认为4
            borderWidth: 0,            // 提示边框线宽,单位px,默认为0(无边框)
            padding: 5,                // 提示内边距,单位px,默认各方向内边距为5,
                                       // 接受数组分别设定上右下左边距,同css
            axisPointer : {            // 坐标轴指示器,坐标轴触发有效
                type : 'line',         // 默认为直线,可选为:'line' | 'shadow'
                lineStyle : {          // 直线指示器样式设置
                    color: '#48b',
                    width: 2,
                    type: 'solid'
                },
                shadowStyle : {                       // 阴影指示器样式设置
                    width: 'auto',                   // 阴影大小
                    color: 'rgba(150,150,150,0.3)'  // 阴影颜色
                }
            },
            textStyle: {
                color: '#fff'
            }
        },
    
    
        // 区域缩放控制器
        dataZoom: {
            orient: 'horizontal',      // 布局方式,默认为水平布局,可选为:
                                       // 'horizontal' ¦ 'vertical'
            // x: {number},            // 水平安放位置,默认为根据grid参数适配,可选为:
                                       // {number}(x坐标,单位px)
            // y: {number},            // 垂直安放位置,默认为根据grid参数适配,可选为:
                                       // {number}(y坐标,单位px)
            // width: {number},        // 指定宽度,横向布局时默认为根据grid参数适配
            // height: {number},       // 指定高度,纵向布局时默认为根据grid参数适配
            backgroundColor: 'rgba(0,0,0,0)',       // 背景颜色
            dataBackgroundColor: '#eee',            // 数据背景颜色
            fillerColor: 'rgba(144,197,237,0.2)',   // 填充颜色
            handleColor: 'rgba(70,130,180,0.8)'     // 手柄颜色
        },
    
    
        // 网格
        grid: {
            x: 80,
            y: 60,
            x2: 80,
            y2: 60,
            // width: {totalWidth} - x - x2,
            // height: {totalHeight} - y - y2,
            backgroundColor: 'rgba(0,0,0,0)',
            borderWidth: 1,
            borderColor: '#ccc'
        },
    
    
        // 类目轴
        categoryAxis: {
            position: 'bottom',    // 位置
            nameLocation: 'end',   // 坐标轴名字位置,支持'start' | 'end'
            boundaryGap: true,     // 类目起始和结束两端空白策略
            axisLine: {            // 坐标轴线
                show: true,        // 默认显示,属性show控制显示与否
                lineStyle: {       // 属性lineStyle控制线条样式
                    color: '#48b',
                    width: 2,
                    type: 'solid'
                }
            },
            axisTick: {            // 坐标轴小标记
                show: true,       // 属性show控制显示与否,默认不显示
                interval: 'auto',
                // onGap: null,
                inside : false,    // 控制小标记是否在grid里 
                length :5,         // 属性length控制线长
                lineStyle: {       // 属性lineStyle控制线条样式
                    color: '#333',
                    width: 1
                }
            },
            axisLabel: {           // 坐标轴文本标签,详见axis.axisLabel
                show: true,
                interval: 'auto',
                rotate: 0,
                margin: 8,
                // formatter: null,
                textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
                    color: '#333'
                }
            },
            splitLine: {           // 分隔线
                show: true,        // 默认显示,属性show控制显示与否
                // onGap: null,
                lineStyle: {       // 属性lineStyle(详见lineStyle)控制线条样式
                    color: ['#ccc'],
                    width: 1,
                    type: 'solid'
                }
            },
            splitArea: {           // 分隔区域
                show: false,       // 默认不显示,属性show控制显示与否
                // onGap: null,
                areaStyle: {       // 属性areaStyle(详见areaStyle)控制区域样式
                    color: ['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)']
                }
            }
        },
    
    
        // 数值型坐标轴默认参数
        valueAxis: {
            position: 'left',      // 位置
            nameLocation: 'end',   // 坐标轴名字位置,支持'start' | 'end'
            nameTextStyle: {},     // 坐标轴文字样式,默认取全局样式
            boundaryGap: [0, 0],   // 数值起始和结束两端空白策略
            splitNumber: 5,        // 分割段数,默认为5
            axisLine: {            // 坐标轴线
                show: true,        // 默认显示,属性show控制显示与否
                lineStyle: {       // 属性lineStyle控制线条样式
                    color: '#48b',
                    width: 2,
                    type: 'solid'
                }
            },
            axisTick: {            // 坐标轴小标记
                show: false,       // 属性show控制显示与否,默认不显示
                inside : false,    // 控制小标记是否在grid里 
                length :5,         // 属性length控制线长
                lineStyle: {       // 属性lineStyle控制线条样式
                    color: '#333',
                    width: 1
                }
            },
            axisLabel: {           // 坐标轴文本标签,详见axis.axisLabel
                show: true,
                rotate: 0,
                margin: 8,
                // formatter: null,
                textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
                    color: '#333'
                }
            },
            splitLine: {           // 分隔线
                show: true,        // 默认显示,属性show控制显示与否
                lineStyle: {       // 属性lineStyle(详见lineStyle)控制线条样式
                    color: ['#ccc'],
                    width: 1,
                    type: 'solid'
                }
            },
            splitArea: {           // 分隔区域
                show: false,       // 默认不显示,属性show控制显示与否
                areaStyle: {       // 属性areaStyle(详见areaStyle)控制区域样式
                    color: ['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)']
                }
            }
        },
    
    
        polar : {
            center : ['50%', '50%'],    // 默认全局居中
            radius : '75%',
            startAngle : 90,
            splitNumber : 5,
            name : {
                show: true,
                textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
                    color: '#333'
                }
            },
            axisLine: {            // 坐标轴线
                show: true,        // 默认显示,属性show控制显示与否
                lineStyle: {       // 属性lineStyle控制线条样式
                    color: '#ccc',
                    width: 1,
                    type: 'solid'
                }
            },
            axisLabel: {           // 坐标轴文本标签,详见axis.axisLabel
                show: false,
                textStyle: {       // 其余属性默认使用全局文本样式,详见TEXTSTYLE
                    color: '#333'
                }
            },
            splitArea : {
                show : true,
                areaStyle : {
                    color: ['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)']
                }
            },
            splitLine : {
                show : true,
                lineStyle : {
                    width : 1,
                    color : '#ccc'
                }
            }
        },
    
    
        // 柱形图默认参数
        bar: {
            barMinHeight: 0,          // 最小高度改为0
            // barWidth: null,        // 默认自适应
            barGap: '30%',            // 柱间距离,默认为柱形宽度的30%,可设固定值
            barCategoryGap : '20%',   // 类目间柱形距离,默认为类目间距的20%,可设固定值
            itemStyle: {
                normal: {
                    // color: '各异',
                    barBorderColor: '#fff',       // 柱条边线
                    barBorderRadius: 0,           // 柱条边线圆角,单位px,默认为0
                    barBorderWidth: 1,            // 柱条边线线宽,单位px,默认为1
                    label: {
                        show: false
                        // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
                        //           'inside'|'left'|'right'|'top'|'bottom'
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    }
                },
                emphasis: {
                    // color: '各异',
                    barBorderColor: 'rgba(0,0,0,0)',   // 柱条边线
                    barBorderRadius: 0,                // 柱条边线圆角,单位px,默认为0
                    barBorderWidth: 1,                 // 柱条边线线宽,单位px,默认为1
                    label: {
                        show: false
                        // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
                        //           'inside'|'left'|'right'|'top'|'bottom'
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    }
                }
            }
        },
    
    
        // 折线图默认参数
        line: {
            itemStyle: {
                normal: {
                    // color: 各异,
                    label: {
                        show: false
                        // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
                        //           'inside'|'left'|'right'|'top'|'bottom'
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    },
                    lineStyle: {
                        width: 2,
                        type: 'solid',
                        shadowColor : 'rgba(0,0,0,0)', //默认透明
                        shadowBlur: 5,
                        shadowOffsetX: 3,
                        shadowOffsetY: 3
                    }
                },
                emphasis: {
                    // color: 各异,
                    label: {
                        show: false
                        // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
                        //           'inside'|'left'|'right'|'top'|'bottom'
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    }
                }
            },
            //smooth : false,
            //symbol: null,         // 拐点图形类型
            symbolSize: 2,          // 拐点图形大小
            //symbolRotate : null,  // 拐点图形旋转控制
            showAllSymbol: false    // 标志图形默认只有主轴显示(随主轴标签间隔隐藏策略)
        },
        
        // K线图默认参数
        k: {
            // barWidth : null          // 默认自适应
            // barMaxWidth : null       // 默认自适应 
            itemStyle: {
                normal: {
                    color: '#fff',          // 阳线填充颜色
                    color0: '#00aa11',      // 阴线填充颜色
                    lineStyle: {
                        width: 1,
                        color: '#ff3200',   // 阳线边框颜色
                        color0: '#00aa11'   // 阴线边框颜色
                    }
                },
                emphasis: {
                    // color: 各异,
                    // color0: 各异
                }
            }
        },
        
        // 散点图默认参数
        scatter: {
            //symbol: null,      // 图形类型
            symbolSize: 4,       // 图形大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2
            //symbolRotate : null,  // 图形旋转控制
            large: false,        // 大规模散点图
            largeThreshold: 2000,// 大规模阀值,large为true且数据量>largeThreshold才启用大规模模式
            itemStyle: {
                normal: {
                    // color: 各异,
                    label: {
                        show: false
                        // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
                        //           'inside'|'left'|'right'|'top'|'bottom'
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    }
                },
                emphasis: {
                    // color: '各异'
                    label: {
                        show: false
                        // position: 默认自适应,水平布局为'top',垂直布局为'right',可选为
                        //           'inside'|'left'|'right'|'top'|'bottom'
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    }
                }
            }
        },
    
    
        // 雷达图默认参数
        radar : {
            itemStyle: {
                normal: {
                    // color: 各异,
                    label: {
                        show: false
                    },
                    lineStyle: {
                        width: 2,
                        type: 'solid'
                    }
                },
                emphasis: {
                    // color: 各异,
                    label: {
                        show: false
                    }
                }
            },
            //symbol: null,         // 拐点图形类型
            symbolSize: 2           // 可计算特性参数,空数据拖拽提示图形大小
            //symbolRotate : null,  // 图形旋转控制
        },
    
    
        // 饼图默认参数
        pie: {
            center : ['50%', '50%'],    // 默认全局居中
            radius : [0, '75%'],
            clockWise : false,          // 默认逆时针
            startAngle: 90,
            minAngle: 0,                // 最小角度改为0
            selectedOffset: 10,         // 选中是扇区偏移量
            itemStyle: {
                normal: {
                    // color: 各异,
                    borderColor: '#fff',
                    borderWidth: 1,
                    label: {
                        show: true,
                        position: 'outer'
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    },
                    labelLine: {
                        show: true,
                        length: 20,
                        lineStyle: {
                            // color: 各异,
                            width: 1,
                            type: 'solid'
                        }
                    }
                },
                emphasis: {
                    // color: 各异,
                    borderColor: 'rgba(0,0,0,0)',
                    borderWidth: 1,
                    label: {
                        show: false
                        // position: 'outer'
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    },
                    labelLine: {
                        show: false,
                        length: 20,
                        lineStyle: {
                            // color: 各异,
                            width: 1,
                            type: 'solid'
                        }
                    }
                }
            }
        },
        
        map: {
            mapType: 'china',   // 各省的mapType暂时都用中文
            mapLocation: {
                x : 'center',
                y : 'center'
                // width    // 自适应
                // height   // 自适应
            },
            showLegendSymbol : true,       // 显示图例颜色标识(系列标识的小圆点),存在legend时生效
            itemStyle: {
                normal: {
                    // color: 各异,
                    borderColor: '#fff',
                    borderWidth: 1,
                    areaStyle: {
                        color: '#ccc'//rgba(135,206,250,0.8)
                    },
                    label: {
                        show: false,
                        textStyle: {
                            color: 'rgba(139,69,19,1)'
                        }
                    }
                },
                emphasis: {                 // 也是选中样式
                    // color: 各异,
                    borderColor: 'rgba(0,0,0,0)',
                    borderWidth: 1,
                    areaStyle: {
                        color: 'rgba(255,215,0,0.8)'
                    },
                    label: {
                        show: false,
                        textStyle: {
                            color: 'rgba(139,69,19,1)'
                        }
                    }
                }
            }
        },
        
        force : {
            // 数据map到圆的半径的最小值和最大值
            minRadius : 10,
            maxRadius : 20,
            density : 1.0,
            attractiveness : 1.0,
            // 初始化的随机大小位置
            initSize : 300,
            // 向心力因子,越大向心力越大
            centripetal : 1,
            // 冷却因子
            coolDown : 0.99,
            // 分类里如果有样式会覆盖节点默认样式
            itemStyle: {
                normal: {
                    // color: 各异,
                    label: {
                        show: false
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    },
                    nodeStyle : {
                        brushType : 'both',
                        color : '#f08c2e',
                        strokeColor : '#5182ab'
                    },
                    linkStyle : {
                        strokeColor : '#5182ab'
                    }
                },
                emphasis: {
                    // color: 各异,
                    label: {
                        show: false
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    },
                    nodeStyle : {},
                    linkStyle : {}
                }
            }
        },
    
    
        chord : {
            radius : ['65%', '75%'],
            center : ['50%', '50%'],
            padding : 2,
            sort : 'none', // can be 'none', 'ascending', 'descending'
            sortSub : 'none', // can be 'none', 'ascending', 'descending'
            startAngle : 90,
            clockWise : false,
            showScale : false,
            showScaleText : false,
            itemStyle : {
                normal : {
                    label : {
                        show : true
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    },
                    lineStyle : {
                        width : 0,
                        color : '#000'
                    },
                    chordStyle : {
                        lineStyle : {
                            width : 1,
                            color : '#666'
                        }
                    }
                },
                emphasis : {
                    lineStyle : {
                        width : 0,
                        color : '#000'
                    },
                    chordStyle : {
                        lineStyle : {
                            width : 2,
                            color : '#333'
                        }
                    }
                }
            }
        },
    
    
        island: {
            r: 15,
            calculateStep: 0.1  // 滚轮可计算步长 0.1 = 10%
        },
        
        markPoint : {
            symbol: 'pin',         // 标注类型
            symbolSize: 10,        // 标注大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2
            //symbolRotate : null, // 标注旋转控制
            itemStyle: {
                normal: {
                    // color: 各异,
                    // borderColor: 各异,     // 标注边线颜色,优先于color 
                    borderWidth: 2,            // 标注边线线宽,单位px,默认为1
                    label: {
                        show: true,
                        position: 'inside' // 可选为'left'|'right'|'top'|'bottom'
                        // textStyle: null      // 默认使用全局文本样式,详见TEXTSTYLE
                    }
                },
                emphasis: {
                    // color: 各异
                    label: {
                        show: true
                        // position: 'inside'  // 'left'|'right'|'top'|'bottom'
                        // textStyle: null     // 默认使用全局文本样式,详见TEXTSTYLE
                    }
                }
            }
        },
        
        markLine : {
            // 标线起始和结束的symbol介绍类型,如果都一样,可以直接传string
            symbol: ['circle', 'arrow'],  
            // 标线起始和结束的symbol大小,半宽(半径)参数,当图形为方向或菱形则总宽度为symbolSize * 2
            symbolSize: [2, 4],
            // 标线起始和结束的symbol旋转控制
            //symbolRotate : null,
            itemStyle: {
                normal: {
                    // color: 各异,           // 标线主色,线色,symbol主色
                    // borderColor: 随color,     // 标线symbol边框颜色,优先于color 
                    borderWidth: 2,          // 标线symbol边框线宽,单位px,默认为2
                    label: {
                        show: false,
                        // 可选为 'start'|'end'|'left'|'right'|'top'|'bottom'
                        position: 'inside',  
                        textStyle: {         // 默认使用全局文本样式,详见TEXTSTYLE
                            color: '#333'
                        }
                    },
                    lineStyle: {
                        // color: 随borderColor, // 主色,线色,优先级高于borderColor和color
                        // width: 随borderWidth, // 优先于borderWidth
                        type: 'solid',
                        shadowColor : 'rgba(0,0,0,0)', //默认透明
                        shadowBlur: 5,
                        shadowOffsetX: 3,
                        shadowOffsetY: 3
                    }
                },
                emphasis: {
                    // color: 各异
                    label: {
                        show: false
                        // position: 'inside' // 'left'|'right'|'top'|'bottom'
                        // textStyle: null    // 默认使用全局文本样式,详见TEXTSTYLE
                    },
                    lineStyle : {}
                }
            }
        },
    
    
        textStyle: {
            decoration: 'none',
            fontFamily: 'Arial, Verdana, sans-serif',
            fontFamily2: '微软雅黑',    // IE8- 字体模糊并且不支持不同字体混排,额外指定一份
            fontSize: 12,
            fontStyle: 'normal',
            fontWeight: 'normal'
        },
    
    
        // 默认标志图形类型列表
        symbolList : [
          'circle', 'rectangle', 'triangle', 'diamond',
          'emptyCircle', 'emptyRectangle', 'emptyTriangle', 'emptyDiamond'
        ],
        loadingText : 'Loading...',
        // 可计算特性配置,孤岛,提示颜色
        calculable: false,              // 默认关闭可计算特性
        calculableColor: 'rgba(255,165,0,0.6)',       // 拖拽提示边框颜色
        calculableHolderColor: '#ccc', // 可计算占位提示颜色
        nameConnector: ' & ',
        valueConnector: ' : ',
        animation: true,
        animationThreshold: 2500,       // 动画元素阀值,产生的图形原素超过2500不出动画
        addDataAnimation: true,         // 动态数据接口是否开启动画效果
        animationDuration: 2000,
        animationEasing: 'ExponentialOut'    //BounceOut
    }


                    

    展开全文
  • Google Earth Engine提供了JS版的API说明文档,但是没有提供Python版的说明文档。但是官方开源了相关代码,我这里利用源码生成了Python版API的相关说明文档。经过两天的研究,我发现GEE的Python版API大部分是和JS版...
  • 首先新建一个WebAPI项目,Edu.Swagger 然后打开“程序包管理控制台”使用NuGet安装 Swashbuckle.AspNetCore Install-Package Swashbuckle.AspNetCore 配置Startup.cs文件 将 Swagger...
  • 在Eclipse中用javadoc给android工程库文件生成API说明文档时 具体步骤参考农民伯伯博客说明: http://www.cnblogs.com/over140/archive/2010/11/15/1877683.html -encoding UTF-8 -charset UTF-8 按照此操作生成...
  • python selenium api说明文档查看方法

    千次阅读 2016-01-19 11:36:37
    Python查看Selenium的API方法介绍
  • 前言 Swagger 是什么?...启动项目后在线自动生成API文档 在线高效调试 2.官网:https://swagger.io knife4j 是什么? 为Java MVC框架集成Swagger的增强解决方案-前身是 swagger-bootstrap-ui swa...
  • 认识Swagger ...文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 作用: 接口的文档在线自动生成。 功能测试。 为什么使用Swagger作为REST APIs文档生成工具 Swagger...
  • 在使用它画折线图和雷达图 百度出来的设置属性不太全 画出来的也有点丑。。。
  • Django API接口文档使用说明

    千次阅读 2019-09-21 22:00:19
    Django API接口文档 REST framework可以自动帮助我们生成接口文档。 接口文档以网页的方式呈现。 自动接口文档能生成的是继承自APIView及其子类的视图。 1. 安装依赖 REST framewrok生成接口文档需要coreapi库...
  • CommonAPI 使用说明文档

    千次阅读 2020-03-05 16:15:45
    CommonAPI C++是用于开发分布式应用程序的标准C++ API规范,该分布式应用程序通过中间件进行进程间通信。 2.CommonAPI C++的目的是什么? CommonAPI C++依靠FrancaIDL来描述静态接口,根据通信协议部署参数,一起...
  • MVC WebApi 文档生成注释说明的方法

    千次阅读 2017-09-27 11:06:14
    在vs2015 里面生成的WebAPI项目 默认包含一个自动生成API说明文档的功能. 但是里面的方法注释和文档注释默认是不存在的. 百度了一下, 找到了解决方法. 生成的效果如下.首先要配置项目可以生成XML说明文档.. 右击...
  • Gitlab API 官方文档使用说明

    万次阅读 2019-05-06 18:00:50
    文档地址:https://python-gitlab.readthedocs.io/en/stable/api-usage.html
  • asp.net web api帮助文档说明

    千次阅读 2014-05-30 16:42:45
    asp.net web api帮助文档说明
  • 后端api规范说明文档

    千次阅读 2018-04-15 19:05:25
    我们此次后端api的实现主要是按照RESTful api规范来设计的,就是符合REST架构下设计api的规范。简单的来说REST结构就是:利用URL定位资源,用HTTP动词(GET,POST,PUT,DELETE)来描述相应操作。 RESTful api主要的意义...
  • springboot项目使用Swagger RestAPI最佳说明文档 我们在开发各种rest服务的时候,需要给出rest api的介绍使用。如果没有rest API的介绍使用文档,除了看源代码几乎没人知道怎么使用。那么如何来编写rest API的...
  • 项目 和 api 接口说明文档

    千次阅读 2018-10-29 21:13:08
    注意:所有api的域名为: http://----- 如果后面文档中,有的域名地址和这里不一样,以这里的为主; 获取图文资讯: 地址 /api/getnewlist 作用描述 主要用来获取点击首页上的“新闻资讯”后进入到的图文...
  • Jenkins API 中文文档

    万次阅读 2018-06-27 17:05:17
    Jenkins API 文档与学习路线图 官方文档 学习路线图 API格式 API在线文档 过滤返回数据 安全 API调试工具 API封装 参考文档 Jenkins API 文档与学习路线图 官方文档 ...
  • api接口文档模板

    千次下载 热门讨论 2014-03-06 16:00:51
    api接口文档模板
  • API文档

    2019-01-03 17:27:49
    写一个大型项目需要定义成千上万的类,而且需要很多人开发,这时就需要提供一个说明文档,用于说明每个类,每个方法的用途。javadoc -d 路径 -windowtitle 浏览窗口标题 ---doctitle 概述页面的标题 -header 页面的....
  • Etherscan API 中文文档

    千次阅读 2019-05-26 16:31:14
    账号及地址相关的 API,接口的参数说明请参考Etherscan API 约定, 文档中不单独说明。 获取单个账号余额 译者注: 英文 `balance` 有人翻译为`金额`,译者习惯称为`余额`。 账号和地址大部分也是指一个意思。 ...
  • MT4ClientApi文档说明-项目创建篇

    千次阅读 2019-08-16 12:11:36
    API说明: 模拟登陆 只需账号,密码,服务器地址,即实现大量平台的模拟登陆 可连接任意平台,可以节省服务器或主机资源,无须启动MT4 client 创建项目 打开Visual Studio点击目录 > 文件-> 新建-> 项目-&...
  • CApi文档生成帮助类,一键生成WebApi接口说明文档,方法异常处理,模拟请求接口,文档一键生成,简单高效,降低手动修改带来的错误,开放源码,可自行扩展和优化(使用Hplus模版)【2.0版本】
  • 前段时间有个项目用到了webapi,不得不说,webapi的自动生成的接口帮助文档实在是太方便了。...分别选中Model项目和API项目【属性-生成-输出-XML文档文件】(其中Model项目XML为接口参数说明API项目XML为接口方法说明
  • FastDFS接口API文档说明

    万次阅读 2014-02-13 14:39:36
    FastDFS接口API文档说明是什么呢?这是很多学习php的朋友都非常想了解的问题,下面就让达内的老师来为大家介绍一下: 一.命令行的上传: 上传命令1. /usr/local/bin/fdfs_upload_file  例如:系统根目录下有个...
  • API接口入门:读懂API接口文档

    万次阅读 多人点赞 2019-10-23 13:54:06
    本文目录: API接口是什么? 为什么我们需要API接口? API接口的核心 一、API接口是什么? 我们来以一个常见的数学公式理解API,比如y=x+2,当x=2的时候,y=4,对么?...API接口入门(一):读懂API接口文档 类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 342,476
精华内容 136,990
关键字:

api说明文档