該服務為自訂聲明提供了通用接口,其中這些聲明使用 WCO 聲明模式表示。除了提交報關單之外,報關單服務還允許您修改和取消報關單。它還提供上傳支援文件和發出到達通知的功能。
報關服務 API 的目標是:
由於通知流程是非同步的,此 API 對聲明者的唯一回應是指示驗證成功(或其他)並提交至 CDS 後端。
sbt run
預設運行在連接埠9820
sbt 'run -Dapplication.router=testOnlyDoNotUseInAppConf.Routes'
海關申報服務可以使用下列設定檔從 Service Manager 本機執行:
個人資料詳情 | 命令 | 描述 |
---|---|---|
CUSTOMS_DECLARATION_ALL | sm2 --啟動 CUSTOMS_DECLARATION_ALL | 運行所有 CDS 應用程式。 |
CUSTOMS_INVENTORY_LINKING_EXPORTS_ALL | sm2 --啟動 CUSTOMS_INVENTORY_LINKING_EXPORTS_ALL | 執行所有 CDS 庫存連結導出相關應用程式。 |
CUSTOMS_INVENTORY_LINKING_IMPORTS_ALL | sm2 --啟動 CUSTOMS_INVENTORY_LINKING_IMPORTS_ALL | 執行所有 CDS 庫存連結導入相關應用程式。 |
sbt test
sbt IntegrationTest/test
sbt test IntegrationTest/test
./run_all_tests.sh
run_all_tests.shclean scalastyle coverage test it:test coverageReport dependencyUpdates"
若要執行 CDS 驗收測試,請參閱此處。
若要執行效能測試,請參閱此處。
有關海關申報 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。這些都是非強制性的。如果同時包含成功和錯誤重定向,則會呼叫 upscan v2,否則呼叫 v1。
連結到curl指令
有一個 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" } }'
然後,我們必須手動重置fieldId
欄位以符合下游服務所需的 id。在 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
開發者中心提供了該服務的三個版本。
每個版本都有單獨的 MDG wco 聲明端點配置部分,因此版本可能指向不同的後端服務。
在請求中提供所需的 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 許可證授權的開源軟體。