ペペロミア開発ブログ

React Nativeで開発しているアプリ「ペペロミア」の技術系記事を投稿してます

Swagger Hubを使ってみる

APIドキュメントなかったと思い、swagger書きました

add swagger close#17 by wheatandcat · Pull Request #19 · wheatandcat/Peperomia · GitHub

openapi: 3.0.0

servers:
  - url: http://localhost:8080
    description: Local server

info:
  version: 1.0.0
  title: ペペロミア API
  description: https://github.com/wheatandcat/Peperomia/tools//swagger.yaml

security:
  - bearerAuth: []   

paths:
  /CreateUser:
    post:
      tags:
        - 実装済み
      description: |
        - ユーザーを作成する
      responses:
        '201':
          description: |
            - 作成した
        '200':
          description: |
            - 既に作成済だった
  /SyncItems:
    post:
      tags:
        - 未実装
      requestBody:
        $ref: '#/components/requestBodies/SyncItemsRequest'

      responses:
        '200':
          description: |
            - 同期成功
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  requestBodies:
    SyncItemsRequest:
        description: アイテム同期のRequest
        content:
          application/json:
            schema:
              type: object
              properties:
                items:
                  type: array
                  items:
                    $ref: '#/components/schemas/Item'

                itemsDetails:
                  type: array
                  items:
                    $ref: '#/components/schemas/ItemDetail'
  schemas:
    Item:
      type: object
      description: スケジュールアイテム
      properties:
        id:
          type: integer
          format: int32
          pattern: "1"
          example: 1
          description: ID
          required:
            - id
        titie:
          type: string
          pattern: string
          example: 葛西臨海公園
          description: タイトル
        kind:
          type: string
          example: fishing
          description: アイコンの種類
        image:
          type: string
          example: ""
          description: 画像のBase64エンコード
        imagePath:
          type: string
          example: ""
          description: 画像のパス
    ItemDetail:
      type: object
      description: スケジュールアイテム詳細
      properties:
        id:
          type: integer
          format: int32
          pattern: "1"
          example: 1
          description: ID
        itemId:
          type: integer
          format: int32
          pattern: "1"
          example: 1
          description: ID
        titie:
          type: string
          pattern: string
          example: 葛西臨海公園
          description: タイトル
        kind:
          type: string
          example: fishing
          description: アイコンの種類
        memo:
          type: string
          example: ""
          description: メモ内容
        moveMinutes:
          type: integer
          pattern: "1"
          example: 30
          description: 移動時間(分)
        priority:
          type: integer
          pattern: "1"
          example: 1
          description: 表示順

swagger見れる場所欲しいなーと思い↓のサイトを見ていたけど、

openapi.tools

そういえばSwagger Hubがあったなーと思い出し使ってみた

swagger.io

使い方

ログインしてプロジェクト名を入力すると Swagger Editorっぽい感じの画面が立ち上がるので、ここで入力

f:id:wheatandcat:20190619000054p:plain

作成完了したら保存して、隣のドキュメントをクリックすれば 簡単に共有もできる

app.swaggerhub.com

全部ブラウザで済むので体験的に良かった

他にも色々機能はあるみたいだけど、一旦これだけで満足