Эта служба предлагает общий интерфейс для пользовательских деклараций, где эти декларации представлены с использованием схемы деклараций WCO. Помимо подачи деклараций, сервис «Таможенные декларации» позволяет вносить в них изменения и аннулировать. Он также предоставляет возможность загружать подтверждающие документы и отправлять уведомления о прибытии.
Целью API Службы таможенных деклараций является:
Поскольку процесс уведомления является асинхронным, единственным ответом декларанту от этого API является указание на успех (или нет) проверки и отправки на серверную часть CDS.
sbt run
, который по умолчанию работает на порту 9820
sbt 'run -Dapplication.router=testOnlyDoNotUseInAppConf.Routes'
Службу таможенных деклараций можно запустить локально из Service Manager, используя следующие профили:
Детали профиля | Команда | Описание |
---|---|---|
CUSTOMS_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 Inventory Linking. |
sbt test
sbt IntegrationTest/test
sbt test IntegrationTest/test
./run_all_tests.sh
clean 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 может содержать URL-адреса SuccessRedirect и errorRedirect. Они не являются обязательными. Если включены как перенаправление успеха, так и ошибка, будет вызвано upscan v2, в противном случае v1.
ссылка на команды скручивания
Существует задача SBT zipWcoXsds
, которая генерирует ZIP-файл, содержащий схемы и примеры сообщений для каждой версии в /public/api/conf
на этапе упаковки (поэтому они не генерируются во время обычной разработки). На эти ZIP-файлы ссылается YAML. Эти ссылки отображаются как ссылки HTML на созданный ZIP-файл в развернутой службе.
Чтобы создать zip-файл локально, выполните следующую команду в командной строке из корневого каталога проекта:
sbt package
fieldsId
из службы api-subscription-fields
Заголовок X-Client-ID
вместе с контекстом и версией приложения используется для вызова службы api-subscription-fields
, чтобы получить уникальный UUID fieldsId
для передачи внутреннему запросу.
Обратите внимание, что служба получения 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
чтобы оно соответствовало идентификатору, ожидаемому нижестоящими службами. В командном окне 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
В Центре разработчиков доступны три версии этой службы.
Каждый из них имеет отдельные разделы конфигурации для конечной точки объявления wco-declaration MDG, поэтому версии могут указывать на разные серверные службы.
Предоставление обязательного заголовка 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.