บริการนี้มีอินเทอร์เฟซทั่วไปสำหรับการประกาศแบบกำหนดเอง โดยที่การประกาศเหล่านั้นจะแสดงโดยใช้สคีมาการประกาศของ WCO นอกเหนือจากการยื่นใบขนสินค้าแล้ว บริการศุลกากรยังช่วยให้คุณสามารถแก้ไขและยกเลิกใบขนสินค้าได้ อีกทั้งยังสามารถอัปโหลดเอกสารประกอบและแจ้งเตือนการมาถึงได้อีกด้วย
วัตถุประสงค์ของ Customs Declarations Service API คือ:
เนื่องจากกระบวนการแจ้งเตือนเป็นแบบอะซิงโครนัส การตอบสนองเพียงอย่างเดียวต่อการประกาศจาก API นี้คือการบ่งชี้ความสำเร็จ (หรืออย่างอื่น) ของการตรวจสอบความถูกต้องและส่งไปยังแบ็กเอนด์ CDS
sbt run
ซึ่งทำงานบนพอร์ต 9820
โดยค่าเริ่มต้นsbt 'run -Dapplication.router=testOnlyDoNotUseInAppConf.Routes'
สามารถเรียกใช้บริการ Customs Declarations ภายในเครื่องได้จาก Service Manager โดยใช้โปรไฟล์ต่อไปนี้:
รายละเอียดโปรไฟล์ | สั่งการ | คำอธิบาย |
---|---|---|
CUSTOMS_DECLARATION_ALL | sm2 --เริ่ม CUSTOMS_DECLARATION_ALL | เพื่อรันแอปพลิเคชัน CDS ทั้งหมด |
CUSTOMS_INVENTORY_LINKING_EXPORTS_ALL | sm2 --เริ่ม CUSTOMS_INVENTORY_LINKING_EXPORTS_ALL | เพื่อรันแอปพลิเคชันที่เกี่ยวข้องกับ CDS Inventory Linking Exports ทั้งหมด |
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 สามารถมี URL ของ SuccessRedirect และ ErrorRedirect ได้ สิ่งเหล่านี้ไม่บังคับ หากรวมทั้งการเปลี่ยนเส้นทางสำเร็จและข้อผิดพลาด ระบบจะเรียกอัปสแกน v2 มิฉะนั้น v1
ลิงก์ไปยังคำสั่ง curl
มีงาน SBT zipWcoXsds
ที่สร้างไฟล์ ZIP ที่มีสคีมาและข้อความตัวอย่างสำหรับแต่ละเวอร์ชันภายใต้ /public/api/conf
ในระหว่างขั้นตอนการจัดทำแพ็กเกจ (ดังนั้นจึงจะไม่สร้างขึ้นในระหว่างการพัฒนาปกติ) ไฟล์ ZIP เหล่านี้อ้างอิงโดย YAML การอ้างอิงเหล่านี้แสดงผลเป็นลิงก์ HTML ไปยัง ZIP ที่สร้างขึ้นในบริการที่ปรับใช้
หากต้องการสร้างไฟล์ zip ในเครื่องให้รันคำสั่งต่อไปนี้ในบรรทัดคำสั่งจากไดเร็กทอรีรากของโปรเจ็กต์:
sbt package
fieldsId
UUID จากบริการ api-subscription-fields
ส่วนหัว X-Client-ID
พร้อมด้วยบริบทและเวอร์ชันของแอปพลิเคชันใช้เพื่อเรียกใช้บริการ api-subscription-fields
เพื่อรับ fieldsId
UUID ที่ไม่ซ้ำกันเพื่อส่งต่อไปยังคำขอแบ็กเอนด์
โปรดทราบว่าบริการในการรับ fieldsId
นั้นไม่ได้ถูกตัดทอนในปัจจุบัน
api-subscription-fields
สำหรับการทดสอบแบบ end-to-end ในเครื่อง ตรวจสอบให้แน่ใจว่าบริการ 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
ให้แน่ใจว่าคุณมี X-Client-ID
ส่วนหัว HTTP ที่มีค่า d65f2252-9fcf-4f04-9445-5971021226bb
บริการนี้สามเวอร์ชันมีอยู่ใน Developer Hub
แต่ละส่วนมีส่วนการกำหนดค่าแยกกันสำหรับตำแหน่งข้อมูลการประกาศ wco ของ MDG ดังนั้นเวอร์ชันต่างๆ อาจชี้ไปที่บริการแบ็กเอนด์ที่แตกต่างกัน
การระบุส่วนหัว ACCEPT ที่จำเป็นในคำขอจะแยกแยะการกำหนดค่าบริการที่จะใช้:
ยอมรับส่วนหัว | เวอร์ชัน |
---|---|
แอปพลิเคชัน/vnd.hmrc.1.0+xml | เวอร์ชัน 1 |
แอปพลิเคชัน/vnd.hmrc.2.0+xml | เวอร์ชัน 2 |
แอปพลิเคชัน/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