SODAI Vision API (1.0.0)

粗大ゴミ画像識別用の REST API.

画像識別の実行時には、事前に発行された以下の値を使用して認証する. API_KEY ユーザー名 パスワード

まず、ユーザー名パスワードを使用して認証トークンを取得し、画像識別の実行時にAPI_KEY認証トークンを使用する. 識別できる粗大ゴミのリストはこちら.

curl による実行例

  • 認証トークンの取得 ユーザー名とパスワードを指定して認証トークンを取得する. 画像識別の実行時、この認証トークンを使用する. 認証トークンの有効期限は1時間であるため、有効期限が切れた場合は再取得、もしくはリフレッシュを行う. リフレッシュトークンの有効期限は30日間.

    リクエスト

    $ curl -X POST -H "Content-Type: application/json" \
      -d '{"userName": "<ユーザー名>", "password": "<パスワード>"}' \
      <エンドポイント>/get_token

    レスポンス

    {
      "token":"<認証トークン>",
      "refreshToken":"<リフレッシュトークン>"
    }
  • 認証トークンのリフレッシュ リフレッシュトークンを利用して新しい認証トークンを取得する.

    リクエスト

    $ curl -X POST -H "Content-Type: application/json" \
      -d '{"refreshToken": "<リフレッシュトークン>"}' \
      <エンドポイント>/refresh_token

    レスポンス

    {
      "token":"<認証トークン>",
      "refreshToken":"<リフレッシュトークン>"
    }
  • 画像識別 BASE64形式に変換した画像を指定し、対象物が何であるか、確信度の高い順にリストで取得する. 認証のため、ヘッダーにAPI_KEYと認証トークンの両方を指定する.

    リクエスト

    $ echo {\"image\": \"$( base64 -i image.jpg )\" } | \
      curl -X POST -H "Content-Type: application/json" \
      -H "x-api-key: <API_KEY>"  \
      -H "Authorization: <認証トークン>"  \
      -d @- \
      <エンドポイント>/classify

    レスポンス

    {
      "results":[
        {
          "label":"ゴミ箱",
          "prob":"0.8123123"
        },
        {
        "label":"冷蔵庫",
        "prob":"0.1023023"
        }
      ]
    }

今後の検討事項

  • 画像サイズの下限、上限については運用状況(サイズによる精度、レスポンス時間)を鑑みて決定する.
  • 現状では1秒あたりのリクエスト数の上限を10回と想定しているが、使用状況に応じて変更する.

Authentication

api_key

固定のAPI_KEYを利用した認証. API_KEY毎に設けられた使用量制限に従う.

Security scheme type: API Key
header parameter name: x-api-key

token

有効期限付トークンによる認証. ユーザー名、パスワードによる認証でトークンを取得する.

Security scheme type: API Key
header parameter name: Authorization

認証トークン取得API

ユーザー名とパスワードで認証し、トークンを取得する. 画像識別APIを呼び出す際にトークンを使用する.

Request Body schema: application/json
userName
required
string

ユーザー名

password
required
string

パスワード

Responses

200

処理成功

400

パラメーター不正

401

認証失敗

500

内部サーバーエラー

post /get_token
/get_token

Request samples

application/json
Copy
Expand all Collapse all
{
  • "userName": "string",
  • "password": "string"
}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "token": "string",
  • "refreshToken": "string"
}

認証トークンリフレッシュAPI

リフレッシュトークンを使用し、新しい認証トークンを取得する.

Request Body schema: application/json
refreshToken
required
string

認証トークンリフレッシュ用トークン

Responses

200

処理成功

400

パラメーター不正

401

認証失敗

500

内部サーバーエラー

post /refresh_token
/refresh_token

Request samples

application/json
Copy
Expand all Collapse all
{
  • "refreshToken": "string"
}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "token": "string",
  • "refreshToken": "string"
}

画像識別API

BASE64形式に変換した画像を受信し、識別した結果を確信度の高い順に返す.

Authorizations:
header Parameters
x-api-key
required
string

利用者毎に使用する固定のAPI_KEY

Authorization
required
string

認証トークン取得APIで取得したtoken

Request Body schema: application/json
image
required
string

BASE64形式に変換した画像

Responses

200

処理成功

400

パラメーター不正

401

認証失敗

403

API_KEY不正

500

内部サーバーエラー

post /classify
/classify

Request samples

application/json
Copy
Expand all Collapse all
{
  • "image": "string"
}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "results":
    [
    ]
}