该服务为自定义声明提供了通用接口,其中这些声明使用 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 许可证授权的开源软件。