swagger-codegen-cli 生成springboot、java、springmvc代码

首先去github下载swagger相关项目,点击打开链接,下载之后我们将swagger-codegen-cli 打包命令如下:mvn clean package ,如果测试报错的话,我们加上跳过测试 -Dmaven.test.skip=true,之后你会发现打包成功,进入项目路径将swagger-codegen-cli的jar包拷出来,然后doc执行相关命令生产你想要的代码,但是再打包过程你下载jar包过慢的话,那么你可以把maven服务器配置成国内镜像,我的博客有相关内容。或者直接在线编辑器,直接生成服务端或者客户端代码,给出连接如下:http://editor2.swagger.io/,非常棒对于微服务非常简便,也不用再自己写文档了,包括测试直接点开swaggerui直接测试接口,这个开发人员可以更加注重业务逻辑。生成代码的命令给出如下  :

C:\Users\Administrator>java -jar C:\Users\Administrator\Desktop\swagger-codegen-
cli.jar generate -i C:\Users\Administrator\Desktop\user.yml -c C:\Users\Administ

rator\Desktop\cloud.json -l spring -o ll(doc中别换行)

简单解释下命令:-i 编辑的yml文件,就是你的url与实体类等。

                          -c 你想生成的代码用什么框架。例如 springcloud、springboot

                          -l 生成代码使用的语言 例如 -java -spring(生成spring相关的框架应该用这个)

                           -o输出路径

之后根据命令给出user.yml文件,cloud.json文件,cloud.json文件不应该添加包的路径,如果添加那么就会不能生成swaggerconfig配置文件,就用默认的包。

=======================user.yml==========================================

# this is an example of the Uber API
# as a demonstration of an API spec in YAML
swagger: '2.0'
info:
  title: Uber API
  description: Move your app forward with the Uber API
  version: "1.0.0"
# the domain of the service
host: api.uber.com
# array of all schemes that your API supports
schemes:
  - https
# will be prefixed to all paths
basePath: /v1
produces:
  - application/json
paths:
  /products:
    get:
      summary: Product Types
      description: |
        The Products endpoint returns information about the *Uber* products
        offered at a given location. The response includes the display name
        and other details about each product, and lists the products in the
        proper display order.
      parameters:
        - name: latitude
          in: query
          description: Latitude component of location.
          required: true
          type: number
          format: double
        - name: longitude
          in: query
          description: Longitude component of location.
          required: true
          type: number
          format: double
      tags:
        - Products
      responses:
        200:
          description: An array of products
          schema:
            type: array
            items:
              $ref: '#/definitions/Product'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
  /estimates/price:
    get:
      summary: Price Estimates
      description: |
        The Price Estimates endpoint returns an estimated price range
        for each product offered at a given location. The price estimate is
        provided as a formatted string with the full price range and the localized
        currency symbol.<br><br>The response also includes low and high estimates,
        and the [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code for
        situations requiring currency conversion. When surge is active for a particular
        product, its surge_multiplier will be greater than 1, but the price estimate
        already factors in this multiplier.
      parameters:
        - name: start_latitude
          in: query
          description: Latitude component of start location.
          required: true
          type: number
          format: double
        - name: start_longitude
          in: query
          description: Longitude component of start location.
          required: true
          type: number
          format: double
        - name: end_latitude
          in: query
          description: Latitude component of end location.
          required: true
          type: number
          format: double
        - name: end_longitude
          in: query
          description: Longitude component of end location.
          required: true
          type: number
          format: double
      tags:
        - Estimates
      responses:
        200:
          description: An array of price estimates by product
          schema:
            type: array
            items:
              $ref: '#/definitions/PriceEstimate'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
  /estimates/time:
    get:
      summary: Time Estimates
      description: The Time Estimates endpoint returns ETAs for all products offered at a given location, with the responses expressed as integers in seconds. We recommend that this endpoint be called every minute to provide the most accurate, up-to-date ETAs.
      parameters:
        - name: start_latitude
          in: query
          description: Latitude component of start location.
          required: true
          type: number
          format: double
        - name: start_longitude
          in: query
          description: Longitude component of start location.
          required: true
          type: number
          format: double
        - name: customer_uuid
          in: query
          type: string
          format: uuid
          description: Unique customer identifier to be used for experience customization.
        - name: product_id
          in: query
          type: string
          description: Unique identifier representing a specific product for a given latitude & longitude.
      tags:
        - Estimates
      responses:
        200:
          description: An array of products
          schema:
            type: array
            items:
              $ref: '#/definitions/Product'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
  /me:
    get:
      summary: User Profile
      description: The User Profile endpoint returns information about the Uber user that has authorized with the application.
      tags:
        - User
      responses:
        200:
          description: Profile information for a user
          schema:
            $ref: '#/definitions/Profile'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
  /history:
    get:
      summary: User Activity
      description: The User Activity endpoint returns data about a user's lifetime activity with Uber. The response will include pickup locations and times, dropoff locations and times, the distance of past requests, and information about which products were requested.<br><br>The history array in the response will have a maximum length based on the limit parameter. The response value count may exceed limit, therefore subsequent API requests may be necessary.
      parameters:
        - name: offset
          in: query
          type: integer
          format: int32
          description: Offset the list of returned results by this amount. Default is zero.
        - name: limit
          in: query
          type: integer
          format: int32
          description: Number of items to retrieve. Default is 5, maximum is 100.
      tags:
        - User
      responses:
        200:
          description: History information for the given user
          schema:
            $ref: '#/definitions/Activities'
        default:
          description: Unexpected error
          schema:
            $ref: '#/definitions/Error'
definitions:
  Product:
    type: object
    properties:
      product_id:
        type: string
        description: Unique identifier representing a specific product for a given latitude & longitude. For example, uberX in San Francisco will have a different product_id than uberX in Los Angeles.
      description:
        type: string
        description: Description of product.
      display_name:
        type: string
        description: Display name of product.
      capacity:
        type: string
        description: Capacity of product. For example, 4 people.
      image:
        type: string
        description: Image URL representing the product.
  PriceEstimate:
    type: object
    properties:
      product_id:
        type: string
        description: Unique identifier representing a specific product for a given latitude & longitude. For example, uberX in San Francisco will have a different product_id than uberX in Los Angeles
      currency_code:
        type: string
        description: "[ISO 4217](http://en.wikipedia.org/wiki/ISO_4217) currency code."
      display_name:
        type: string
        description: Display name of product.
      estimate:
        type: string
        description: Formatted string of estimate in local currency of the start location. Estimate could be a range, a single number (flat rate) or "Metered" for TAXI.
      low_estimate:
        type: number
        description: Lower bound of the estimated price.
      high_estimate:
        type: number
        description: Upper bound of the estimated price.
      surge_multiplier:
        type: number
        description: Expected surge multiplier. Surge is active if surge_multiplier is greater than 1. Price estimate already factors in the surge multiplier.
  Profile:
    type: object
    properties:
      first_name:
        type: string
        description: First name of the Uber user.
      last_name:
        type: string
        description: Last name of the Uber user.
      email:
        type: string
        description: Email address of the Uber user
      picture:
        type: string
        description: Image URL of the Uber user.
      promo_code:
        type: string
        description: Promo code of the Uber user.
  Activity:
    type: object
    properties:
      uuid:
        type: string
        description: Unique identifier for the activity
  Activities:
    type: object
    properties:
      offset:
        type: integer
        format: int32
        description: Position in pagination.
      limit:
        type: integer
        format: int32
        description: Number of items to retrieve (100 max).
      count:
        type: integer
        format: int32
        description: Total number of items available.
      history:
        type: array
        items:
          $ref: '#/definitions/Activity'
  Error:
    type: object
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
      fields:
        type: string
============================cloud.json========================================
{
    "groupId" : "com.ll",
    "artifactId" : "feign",
    "artifactVersion" : "1.0.0",
    "interfaceOnly" : "true",
    "library" : "spring-boot",
}

生成的项目在你的指定的路径了,哈哈哈。之后导入ide,springboot启动项目,所以我们导入加入eclipse,加入main函数,

给出代码如下,路径放在class路径下,

@SpringBootApplication
@ComponentScan(value="io.swagger,io.swagger.api,io.swagger.configuration,io.swagger.model")
public class TestSpringbootApplication {
    public static void main(String[] args) {
		SpringApplication.run(TestSpringbootApplication.class, args);
	}
}

依赖不需要我们再加入了,之后访问url路径为:http://localhost:8080/v1/  访问之后我们看到如下图


猜你喜欢

转载自blog.csdn.net/yl_hahha/article/details/80294033