API リファレンス

SOAPless REST プロキシのエンドポイント仕様

Base URL

https://soapless.miravy.com

すべてのエンドポイントで HTTPS が必須です。HTTP リクエストは自動的に HTTPS へリダイレクトされます。

Proxy エンドポイント

POST/api/v1/{accountId}/{serviceSlug}/{operationName}
GET/api/v1/{accountId}/{serviceSlug}/{operationName}?a=2&b=3

GET は任意です。入力が単純な参照系オペレーションでは自動で公開されます。Starter / Pro では、ダッシュボードからオペレーションごとに GET を手動で有効化することもできます。

ダッシュボードの method policy は InheritPOSTGETGET + POST です。

両方が利用可能な場合は、クライアントに合わせて選べます。body で送りたいときは POST、query parameter や cache と相性を取りたいときは GET が向いています。

accountId は Settings で確認できる固定の Account ID です。例: ab12cd34ef

REST JSON リクエストを受け取り、上流の SOAP オペレーションへプロキシします。

パスパラメータ

パラメータ説明
accountIdstringSettings に表示される固定の Account ID
serviceSlugstringSOAP サービス登録時に設定した slug
operationNamestringWSDL に定義された SOAP オペレーション名

リクエストヘッダー

ヘッダー必須説明
X-API-KeyはいSOAPless の APIキー(sl_live_...
Content-Typeはいapplication/json を指定してください。

リクエストボディ

SOAP オペレーションの入力パラメータに対応する JSON オブジェクトです。SOAPless が対応する SOAP XML 要素へ自動でマッピングします。

Request bodyjson
{
  "userId": 42
}

成功レスポンス (200)

200 OKjson
{
  "result": {
    "id": 42,
    "name": "Alice Johnson",
    "email": "alice@acme.com",
    "department": "Engineering"
  },
  "meta": {
    "service": "my-erp",
    "operation": "GetUser",
    "latencyMs": 245,
    "cached": false
  }
}

レスポンスコード

コードステータス説明
200OKプロキシ成功。SOAP レスポンスを JSON に変換して返却
400Bad RequestJSON ボディが不正、必須フィールドの欠落、またはバリデーションエラー
401UnauthorizedAPIキーが未設定または無効。 X-API-Key ヘッダーを確認してください
404Not Foundサービス slug またはオペレーション名が見つからない。URL パスを確認してください
429Too Many Requestsレート制限を超過。 X-RateLimit-* ヘッダーで制限の詳細を確認してください
502Bad Gateway上流の SOAP サービスがエラーを返した、または到達不能。エラーメッセージの詳細を確認してください

エラータイプ

エラーレスポンスの error.type フィールドには以下のいずれかの値が入ります

タイプコード説明
VALIDATION_ERROR400リクエストボディが WSDL スキーマのバリデーションに違反
AUTHENTICATION_ERROR401APIキーが未設定、無効、または無効化済み
SERVICE_NOT_FOUND404指定された slug に一致するサービスが存在しない
OPERATION_NOT_FOUND404指定されたサービスに該当するオペレーションが存在しない
RATE_LIMIT_EXCEEDED429月間リクエスト上限またはレート制限を超過
UPSTREAM_ERROR502上流の SOAP サービスが SOAP Fault を返したか到達不能
INTERNAL_ERROR500予期しないエラー。解消しない場合はサポートまでお問い合わせください

OpenAPI Spec エンドポイント

GET/api/services/{serviceId}/openapi

登録済みの SOAP サービスに対して自動生成された OpenAPI 3.0 仕様を返します。有料プラン(Starter / Pro)限定の機能です。

認証

このエンドポイントは 2 つの認証方式に対応しています。

  • セッション Cookie(プライマリ) — ダッシュボードのセッションによる認証。ブラウザからのアクセス時に使用されます。
  • APIキー(フォールバック) — X-API-Key ヘッダーにキーを指定します。curl や CI パイプライン、プログラムからのアクセスに向いています。

パスパラメータ

パラメータ説明
serviceIdUUID登録済み SOAP サービスの一意な ID

使用例

APIキーで OpenAPI spec を取得bash
curl -H "X-API-Key: sl_live_abc123" \
  https://soapless.miravy.com/api/services/550e8400-e29b-41d4-a716-446655440000/openapi

レスポンスコード

コード説明
200OpenAPI 3.0 JSON 仕様を返却
401未認証。セッション Cookie または有効な APIキーを指定してください
403Free プラン。OpenAPI spec を利用するには Starter または Pro にアップグレードしてください
404サービスが見つからない、またはアカウントに属していない

レート制限ヘッダー

すべてのプロキシレスポンスにレート制限ヘッダーが含まれており、クライアント側でも残量とリセット時刻を確認できます。

ヘッダー説明
X-RateLimit-Limitinteger現在のプランで使えるコール上限
X-RateLimit-Remaininginteger現在の請求期間で残っているコール数
X-RateLimit-Resetstring (ISO 8601)次回のリセット時刻を示すタイムスタンプ。Free プランでは月次、有料プランでは現在の請求期間に合わせて変わります。
Example headershttp
X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 9542
X-RateLimit-Reset: 2026-04-01T00:00:00Z

バージョニング

SOAPless API は URL パスでバージョン管理されています。現在のバージョンは v1 です。

https://soapless.miravy.com/api/v1/{accountId}/{serviceSlug}/{operationName}
  • 破壊的変更は新しいバージョン(例: v2)でリリースされます。
  • 非破壊的な追加(新しいフィールド、新しいオプションパラメータ)は、バージョンを上げずに現在のバージョンに追加される場合があります。
  • 非推奨バージョンは、新バージョンリリース後も少なくとも 6 か月間サポートされます。

変換例: SOAP から REST へ

SOAPless が SOAP オペレーションを REST API コールに変換する流れを具体例で紹介します

元の SOAP リクエスト

SOAP XML requestxml
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:usr="http://example.com/users">
  <soap:Header>
    <usr:AuthToken>ws-sec-token-xyz</usr:AuthToken>
  </soap:Header>
  <soap:Body>
    <usr:GetUser>
      <usr:userId>42</usr:userId>
    </usr:GetUser>
  </soap:Body>
</soap:Envelope>

元の SOAP レスポンス

SOAP XML responsexml
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:usr="http://example.com/users">
  <soap:Body>
    <usr:GetUserResponse>
      <usr:user>
        <usr:id>42</usr:id>
        <usr:name>Alice Johnson</usr:name>
        <usr:email>alice@acme.com</usr:email>
        <usr:department>Engineering</usr:department>
      </usr:user>
    </usr:GetUserResponse>
  </soap:Body>
</soap:Envelope>

SOAPless REST リクエスト

REST JSON requestbash
curl -X POST https://soapless.miravy.com/api/v1/ab12cd34ef/user-service/GetUser \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sl_live_abc123" \
  -d '{"userId": 42}'

SOAPless REST レスポンス

REST JSON responsejson
{
  "result": {
    "id": 42,
    "name": "Alice Johnson",
    "email": "alice@acme.com",
    "department": "Engineering"
  },
  "meta": {
    "service": "user-service",
    "operation": "GetUser",
    "latencyMs": 312,
    "cached": false
  }
}