このサービスは、カスタム宣言の一般的なインターフェイスを提供します。これらの宣言は、WCO 宣言スキーマを使用して表現されます。税関申告サービスでは、申告の提出に加えて、申告を修正したり取り消したりすることもできます。また、サポート書類をアップロードし、到着通知を行う機能も提供します。
税関申告サービス API の目的は次のとおりです。
通知プロセスは非同期であるため、この API から宣言者に対する唯一の応答は、検証と CDS バックエンドへの送信の成功 (またはその他) を示すことです。
9820
で実行されるsbt run
sbt 'run -Dapplication.router=testOnlyDoNotUseInAppConf.Routes'
Customs Declarations サービスは、次のプロファイルを使用して、Service Manager からローカルで実行できます。
プロフィールの詳細 | 指示 | 説明 |
---|---|---|
税関_DECLARATION_ALL | sm2 --start CUSTOMS_DECLARATION_ALL | すべての CDS アプリケーションを実行します。 |
CUSTOMS_INVENTORY_LINKING_EXPORTS_ALL | sm2 --start CUSTOMS_INVENTORY_LINKING_EXPORTS_ALL | すべての CDS インベントリ リンク エクスポート関連アプリケーションを実行します。 |
CUSTOMS_INVENTORY_LINKING_IMPORTS_ALL | sm2 --start CUSTOMS_INVENTORY_LINKING_IMPORTS_ALL | すべての CDS インベントリ リンク インポート関連アプリケーションを実行します。 |
sbt test
sbt IntegrationTest/test
sbt test IntegrationTest/test
./run_all_tests.sh
clean scalastyle coverage test it:test coverageReport dependencyUpdates"
CDS 受け入れテストを実行するには、ここを参照してください。
パフォーマンス テストを実行するには、ここを参照してください。
Customs Declarations API のドキュメントについては、ここを参照してください。
パス - /customs-declarations というプレフィックスが付いた内部ルート | サポートされているメソッド | 説明 |
---|---|---|
/customs-declarations/ | 役職 | 宣言を送信するエンドポイント。 |
/customs-declarations/cancellation-requests | 役職 | 宣言をキャンセルするエンドポイント。 |
/customs-declarations/amend | 役職 | 宣言を修正するためのエンドポイント。 |
/customs-declarations/file-upload | 役職 | ファイルのアップロードを送信するエンドポイント。 |
/customs-declarations/uploaded-file-upscan-notifications/clientSubscriptionId/:clientSubscriptionId | 役職 | ファイルアップロードのアップスキャン通知を管理するエンドポイント。 |
/customs-declarations/file-transmission-notify/clientSubscriptionId/:clientSubscriptionId | 役職 | ファイルアップロード通知を税関通知に送信するエンドポイント。 |
/customs-declarations/arrival-notification | 役職 | 到着通知宣言を送信するエンドポイント。 |
パス | サポートされているメソッド | 説明 |
---|---|---|
/file-upload/test-only/all | 消去 | すべてのファイル アップロード メタデータを削除するエンドポイント。 |
/file-upload エンドポイントへのリクエストには、successRedirect および errorRedirect URL を含めることができます。これらは必須ではありません。成功とエラーの両方のリダイレクトが含まれている場合はアップスキャン v2 が呼び出され、それ以外の場合は v1 が呼び出されます。
カールコマンドへのリンク
SBT タスクzipWcoXsds
は、パッケージ化フェーズ中に/public/api/conf
の下に各バージョンのスキーマとサンプル メッセージを含む ZIP ファイルを生成します (したがって、通常の開発中には生成されません)。これらの ZIP ファイルは YAML によって参照されます。これらの参照は、デプロイされたサービスで生成された ZIP への HTML リンクとしてレンダリングされます。
zip ファイルをローカルに生成するには、プロジェクトのルート ディレクトリからコマンド ラインで次のコマンドを実行します。
sbt package
api-subscription-fields
サービスからのfieldsId
UUID の検索X-Client-ID
ヘッダーは、アプリケーション コンテキストおよびバージョンとともにapi-subscription-fields
サービスを呼び出して、バックエンド リクエストに渡す一意のfieldsId
UUID を取得するために使用されます。
fieldsId
取得するサービスは現在スタブ化されていないことに注意してください。
api-subscription-fields
にデータをシードするapi-subscription-fields
サービスがポート9650
で実行されていることを確認してください。次に、以下のcurlコマンドを実行します。
指定されたコマンドでは例としてバージョン2.0
が使用されており、後で呼び出す税関申告 API のバージョン番号を挿入する必要があることに注意してください。
値d65f2252-9fcf-4f04-9445-5971021226bb
は、指定されたコマンドの例として使用されており、ニーズに合った UUID 値を挿入する必要があることに注意してください。
curl -v -X PUT "http://localhost:9650/field/application/d65f2252-9fcf-4f04-9445-5971021226bb/context/customs%2Fdeclarations/version/2.0" -H "Cache-Control: no-cache" -H "Content-Type: application/json" -d '{ "fields" : { "callbackUrl" : "https://postman-echo.com/post", "securityToken" : "securityToken", "authenticatedEori": "ABC123" } }'
次に、ダウンストリーム サービスで予期される ID と一致するように、 fieldId
フィールドを手動でリセットする必要があります。 mongo コマンド ウィンドウに、以下を順番に貼り付けます。
use api-subscription-fields
db.subscriptionFields.update(
{ "clientId" : "d65f2252-9fcf-4f04-9445-5971021226bb", "apiContext" : "customs/declarations", "apiVersion" : "2.0" },
{ $set:
{"fieldsId" : "d65f2252-9fcf-4f04-9445-5971021226bb"}
}
)
その後、 customs-declarations
にリクエストを送信するときは、HTTP ヘッダーX-Client-ID
値がd65f2252-9fcf-4f04-9445-5971021226bb
であることを確認してください。
このサービスの 3 つのバージョンが Developer Hub で利用できます。
それぞれに MDG wco-declaration エンドポイントの個別の構成セクションがあるため、バージョンは異なるバックエンド サービスを指すことができます。
リクエストに必要な ACCEPT ヘッダーを指定すると、使用するサービス構成が区別されます。
ヘッダーを受け入れる | バージョン |
---|---|
アプリケーション/vnd.hmrc.1.0+xml | v1 |
アプリケーション/vnd.hmrc.2.0+xml | v2 |
アプリケーション/vnd.hmrc.3.0+xml | v3 |
他の値のAccept
ヘッダーを持つリクエストは、 406 Not Acceptable
応答ステータスで拒否されることに注意してください。
サービス エンドポイントの動的な切り替えが、wco 宣言コネクタに実装されました。エンドポイントの動的スイッチングを構成するには、アプリケーション構成ファイルに対応するセクションが必要です (以下の例を参照)。これにはエンドポイント構成の詳細が含まれている必要があります。
サービスのcustoms-declarations
、 default
構成とstub
構成があります。 default
設定は、 customs-declarations
セクション内で直接宣言されていることに注意してください。
Prod {
...
services {
...
wco-declaration {
host = some.host
port = 80
bearer-token = "some_token"
context = /services/declarationmanagement/1.0.0
stub {
host = localhost
port = 9479
bearer-token = "some_stub_token"
context = "/registrations/registerwithid/1.0.0"
}
}
v2 {
wco-declaration {
host = some.host
port = 80
bearer-token = "some_token"
context = /services/declarationmanagement/1.0.0
stub {
host = localhost
port = 9479
bearer-token = "some_stub_token"
context = "/registrations/registerwithid/1.0.0"
}
}
}
}
}
default version (application/vnd.hmrc.1.0+xml):
curl -X "POST" http://customs-declarations-host/test-only/service/wco-declaration/configuration -H 'content-type: application/json' -d '{ "environment": "stub" }'
version 2 (application/vnd.hmrc.2.0+xml):
curl -X "POST" http://customs-declarations-host/test-only/service/v2.wco-declaration/configuration -H 'content-type: application/json' -d '{ "environment": "stub" }'
The service customs-declarations is now configured to use the stub environment
curl -X "POST" http://customs-declarations-host/test-only/service/wco-declaration/configuration -H 'content-type: application/json' -d '{ "environment": "default" }'
The service customs-declarations is now configured to use the default environment
curl -X "GET" http://customs-declarations-host/test-only/service/wco-declaration/configuration
{
"service": "wco-declaration",
"environment": "stub",
"url": "http://currenturl/customs-declarations"
"bearerToken": "current token"
}
このコードは、Apache 2.0 ライセンスに基づいてライセンスされたオープン ソース ソフトウェアです。