1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Day2] TypeScript × Node.jsで簡単なRESTAPI作ってみる(Swagger編)

Last updated at Posted at 2018-09-13

[Day1] TypeScript × Node.jsでHello World

の続きです

Swaggerとは

REST API作るときに簡単にドキュメント作れます。
curlで動作確認やコード自動生成も出来る!(強い)

Swagger Editor

以下のサイトで編集できる。
https://editor.swagger.io/

諸事情により、アップロード出来ない場合はdockerもある。
API用のコンテナと一緒に立てるのが良さそう。
swaggerapi/swagger-editor

SwaggerでHello World

swagger: '2.0'
# 説明とか
info:
  description: Sample
  version: 1.0.0
  title: Sample API
# REST APIのURLを書く場所
host: 'localhost:3000'
# 共通の階層を指定する。Swagger的にはv1とかがデフォルト
basePath: /v1
# 基本はhttp通信かhttps通信か両方
schemes:
  - http
  - https

# セキュリティの定義
# Basic認証をかけてます
securityDefinitions:
  basicAuth:
    type: basic

# メインディッシュ
# パスに入ったときのinputとoutputを定義する
paths:
  /user/list:
    get:
      tags:
        - user
      summary: ユーザ情報取得
      security:
        - basicAuth: []
      responses:
        '200':
          description: Success
          schema:
            $ref: '#/definitions/result_user_list'
  
  /user/regist:
    post:
      tags:
        - user
      summary: ユーザ情報登録
      security:
        - basicAuth: []
      parameters: 
        - in: body
          name: user
          required: true
          schema:
            $ref: '#/definitions/user_model'
      responses:
        '200':
          description: OK
 
# モデルクラスの定義
# なるべく小さく定義して、$refで再利用すると使いやすい
definitions:
  user_model:
    type: object
    properties:
      id:
        type: integer
        example: 10001
      name:
        type: string
        example: okkun
      email:
        type: string
        example: okkun.development@gmail.com
      age:
        type: integer
        example: 24
  
  result_user_list:
    type: object
    properties:
      users:
        type: array
        items:
          $ref: '#/definitions/user_model'
      
    
externalDocs:
  description: Find out more about Swagger
  url: 'http://swagger.io'

結果

こんな感じでユーザ情報一覧を取ってくるAPIドキュメントが作れました。
(プライバシーポリシーどうなってんだ)

スクリーンショット 2018-09-13 23.04.38.png

swagger-codegenとか使うとyamlを読み取って通信周りのコード自動生成してくれます
https://github.com/swagger-api/swagger-codegen

感想

ドキュメント作るの大事

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?