이 서비스는 WCO 선언 스키마를 사용하여 선언이 표현되는 사용자 정의 선언에 대한 일반 인터페이스를 제공합니다. 관세 신고서 제출 외에도 관세 신고 서비스를 통해 신고서를 수정하고 취소할 수 있습니다. 또한 증빙 서류를 업로드하고 도착 알림을 보내는 기능도 제공합니다.
관세 신고 서비스 API의 목적은 다음과 같습니다.
알림 프로세스는 비동기식이므로 이 API에서 선언자에 대한 유일한 응답은 검증 및 CDS 백엔드 제출의 성공(또는 그렇지 않은 경우)을 나타내는 것입니다.
9820
에서 실행되는 sbt run
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
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이 포함될 수 있습니다. 이는 필수 사항이 아닙니다. 성공 및 오류 리디렉션이 모두 포함된 경우 upscan v2가 호출되고, 그렇지 않으면 v1이 호출됩니다.
컬 명령 링크
패키징 단계 동안 /public/api/conf
아래에 각 버전에 대한 스키마와 예제 메시지가 포함된 ZIP 파일을 생성하는 SBT 작업 zipWcoXsds
있습니다(따라서 일반 개발 중에는 생성되지 않습니다). 이러한 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
에서 실행되고 있는지 확인하세요. 그런 다음 아래 컬 명령을 실행하십시오.
버전 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
에 요청을 보낼 때 d65f2252-9fcf-4f04-9445-5971021226bb
값을 가진 HTTP 헤더 X-Client-ID
가 있는지 확인하십시오.
이 서비스의 세 가지 버전은 개발자 허브에서 사용할 수 있습니다.
각 버전에는 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 라이센스에 따라 라이센스가 부여된 오픈 소스 소프트웨어입니다.