例えばカスタムヘッダでそこに認証用のキーを埋め込んでほしい場合などの書き方。OAuthとかBasic認証はあるのだけど、そういうポピュラーなものではなくオリジナルをやりたい場合の例。
書き方
securitySchemes
にtypeをapikey
にした情報を定義する- 利用したいエンドポイントで
secure
の項目を追加して指定する
実例
/user
のエンドポイント に 認証用のコードとしてSECRETHEADERCODEを入れるようにヘッダに指定したい場合
securitySchemesの定義
以下の用に定義する
components: securitySchemes: API_SECRETCODE: type: apiKey description: ヘッダに乗せるシークレットキー in: header name: SECRETHEADERCODE
エンドポイントに追加
以下のように追加する
paths: /users: get: summary: "ユーザ情報の取得" tags: - "SelfSetting" security: - API_SECRETCODE: []
できあがるcurl
UI上でcurlを生成すると以下のように出来上がる
curl -X GET "http://example.com/users?id=1" -H "accept: application/json" -H "SECRETHEADERCODE: xxxx"
さらにBasic認証も指定したい場合
例えばBasic認証とコードをかけ合わせたい等の場合は以下のようにする
まずはBasic認証
components: securitySchemes: API_SECRETCODE: type: apiKey description: ヘッダに乗せるシークレットキー in: header name: SECRETHEADERCODE BasicNinsho: type: http description: Basic認証 scheme: basic
ANDにする場合は以下のように書く
paths: /users: get: summary: "プロフィール情報の取得。" tags: - "SelfSetting" security: - API_SECRETCODE: [] - BasicNinsho: []
そうすると以下のようにBasic認証情報がつく
curl -X GET "http://example.com/users?id=1" -H "accept: application/json" -H "SECRETHEADERCODE: xxxx" -H "Authorization: Basic bmFtZTpwYXNz"