prism(モックサーバ)を使って、OpenAPIを動作させてみる
参考URL
https://zenn.dev/unsoluble_sugar/articles/32e7c43e177fd9273ee3
openapiと同じフォルダに、prismの実行ファイルを配置して、実行する
https://github.com/stoplightio/prism/releases
1 |
.\prism-cli-win.exe mock .\test.yaml |
OpenAPIに定義したGETを返してくれる(値はexample固定)
http://127.0.0.1:4010/hello
こうなってくると、引数を受け取りたくなるので、parametersを定義する
パラメータで渡した文字列を返す、みたいなサーバ側の処理は実行出来ない(exampleを返すだけ)
定義した正しいパラメータを受け取ってはくれ、間違っているとエラーを吐いてくれる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
openapi: 3.0.0 # openapiのバージョン info: # ヘッダ的フィールド title: Test API # このドキュメントのタイトル version: 0.0.1 # このドキュメントのバージョン servers: # APIサーバのURL - url: https://example.com/api/ description: Test API tags: # 各APIをグループ化してまとめるためのタグ - name: first_api # タグ名 description: APIその1 # タグの説明 paths: # APIのアクセスポイント /hello/{str}: # パス名(api/helloみたいな感じでアクセスする) get: # メソッド名(get/post/put/delete) tags: - first_api parameters: # queryだと/hello?str=world なので追加が楽? - in: path # pathだと/hello/{str}、アクセスポイントも書き直す必要がある name: str schema: type: string required: true # pathの場合は必須項目 description: 返す文字列を引数で渡す responses: # アクセスしたら、どんなレスポンスを返すか? '200': # HTTPレスポンス番号 description: helloという文字列を返す # 説明は必須(summaryは必須じゃない) content: # レスポンスの内容 application/json: # レスポンスの形式指定(MIMEタイプ) schema: # データ構造(schema = 構造) # シャープは同じファイルを意味する(リンク先を記述) $ref: '#/components/schemas/get_hello_response' # ここに個別のスキーマ(構造)情報を書く components: schemas: # スキーマは、戻り値のデータ? get_hello_response: # スキーマ名 type: object # integer,stringなどの型。objectは複数データをもつ型 properties: # objectの中身を羅列する answer: # プロパティ名 type: string # プロパティの型 example: "world!!" # どんな文字列か? |