Ce service offre une interface générale pour les déclarations personnalisées, où ces déclarations sont représentées à l'aide du schéma de déclarations de l'OMD. En plus de déposer des déclarations, le service Déclarations en Douane vous permet de les modifier et de les annuler. Il offre également la possibilité de télécharger des pièces justificatives et de faire des notifications d'arrivée.
L’objectif de l’API du Service de Déclarations en Douane est :
Comme le processus de notification est asynchrone, la seule réponse au déclarant de cette API est d'indiquer le succès (ou non) de la validation et de la soumission au backend CDS.
sbt run
qui s'exécute sur le port 9820
par défautsbt 'run -Dapplication.router=testOnlyDoNotUseInAppConf.Routes'
Le service Déclarations en douane peut être exécuté localement depuis Service Manager, en utilisant les profils suivants :
Détails du profil | Commande | Description |
---|---|---|
CUSTOMS_DECLARATION_ALL | sm2 --start CUSTOMS_DECLARATION_ALL | Pour exécuter toutes les applications CDS. |
CUSTOMS_INVENTORY_LINKING_EXPORTS_ALL | sm2 --start CUSTOMS_INVENTORY_LINKING_EXPORTS_ALL | Pour exécuter toutes les applications liées aux exportations de liaison d'inventaire CDS. |
CUSTOMS_INVENTORY_LINKING_IMPORTS_ALL | sm2 --start CUSTOMS_INVENTORY_LINKING_IMPORTS_ALL | Pour exécuter toutes les applications liées aux importations de liaison d'inventaire CDS. |
sbt test
sbt IntegrationTest/test
sbt test IntegrationTest/test
./run_all_tests.sh
clean scalastyle coverage test it:test coverageReport dependencyUpdates"
Pour exécuter les tests d'acceptation CDS, voir ici.
Pour exécuter des tests de performances, voir ici.
Pour la documentation de l'API des déclarations douanières, voir ici.
Chemin - routes internes préfixées par /customs-declarations | Méthodes prises en charge | Description |
---|---|---|
/customs-declarations/ | POSTE | Point de terminaison pour soumettre une déclaration. |
/customs-declarations/cancellation-requests | POSTE | Point de terminaison pour annuler une déclaration. |
/customs-declarations/amend | POSTE | Point final pour modifier une déclaration. |
/customs-declarations/file-upload | POSTE | Point de terminaison pour soumettre un téléchargement de fichier. |
/customs-declarations/uploaded-file-upscan-notifications/clientSubscriptionId/:clientSubscriptionId | POSTE | Point de terminaison pour gérer les notifications d'analyse ascendante de téléchargement de fichiers. |
/customs-declarations/file-transmission-notify/clientSubscriptionId/:clientSubscriptionId | POSTE | Point de terminaison pour soumettre les notifications de téléchargement de fichiers à la notification douanière. |
/customs-declarations/arrival-notification | POSTE | Point final pour soumettre une déclaration de notification d’arrivée. |
Chemin | Méthodes prises en charge | Description |
---|---|---|
/file-upload/test-only/all | SUPPRIMER | Point de terminaison pour supprimer toutes les métadonnées de téléchargement de fichiers. |
Une requête adressée au point de terminaison /file-upload peut contenir des URL successRedirect et errorRedirect. Ceux-ci ne sont pas obligatoires. Si une redirection de réussite et une redirection d'erreur sont incluses, alors upscan v2 sera appelé, sinon v1.
lien vers les commandes curl
Il existe une tâche SBT zipWcoXsds
qui génère un fichier ZIP contenant des schémas et des exemples de messages pour chaque version sous /public/api/conf
pendant la phase d'empaquetage (ils ne sont donc pas générés pendant le développement normal). Ces fichiers ZIP sont référencés par le YAML. Ces références sont rendues sous forme de liens HTML vers le ZIP généré dans le service déployé.
Pour générer le fichier zip localement, exécutez la commande suivante dans la ligne de commande à partir du répertoire racine du projet :
sbt package
fieldsId
à partir du service api-subscription-fields
L'en-tête X-Client-ID
, ainsi que le contexte et la version de l'application, sont utilisés pour appeler le service api-subscription-fields
afin d'obtenir l'UUID fieldsId
unique à transmettre à la requête backend.
Notez que le service permettant d'obtenir le fieldsId
n'est pas actuellement supprimé.
api-subscription-fields
pour des tests locaux de bout en bout Assurez-vous que le service api-subscription-fields
s'exécute sur le port 9650
. Ensuite, exécutez la commande curl ci-dessous.
Attention, la version 2.0
est utilisée à titre d'exemple dans les commandes données, et vous devez insérer le numéro de version de l'api des déclarations en douane que vous appellerez par la suite.
Veuillez noter que la valeur d65f2252-9fcf-4f04-9445-5971021226bb
est utilisée comme exemple dans les commandes données et que vous devez insérer la valeur UUID qui correspond à vos besoins.
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" } }'
Nous devons ensuite réinitialiser manuellement le champ fieldId
pour qu'il corresponde à l'identifiant attendu par les services en aval. Dans une fenêtre de commande mongo, collez ce qui suit, l'un après l'autre.
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"}
}
)
Lorsque vous envoyez ensuite une demande aux customs-declarations
assurez-vous d'avoir l'en-tête HTTP X-Client-ID
avec la valeur d65f2252-9fcf-4f04-9445-5971021226bb
Trois versions de ce service sont disponibles sur le Developer Hub.
Chacun a des sections de configuration distinctes pour le point de terminaison de déclaration wco MDG afin que les versions puissent pointer vers différents services backend.
La fourniture de l'en-tête ACCEPT requis dans la demande permet de distinguer la configuration de service à utiliser :
Accepter l'en-tête | Version |
---|---|
application/vnd.hmrc.1.0+xml | v1 |
application/vnd.hmrc.2.0+xml | v2 |
application/vnd.hmrc.3.0+xml | v3 |
Veuillez noter que les demandes avec toute autre valeur d’en-tête Accept
sont rejetées avec le statut de réponse 406 Not Acceptable
.
La commutation dynamique des points de terminaison de service a été implémentée pour le connecteur de déclaration wco. Pour configurer la commutation dynamique du point de terminaison, il doit y avoir une section correspondante dans le fichier de configuration de l'application (voir l'exemple ci-dessous). Celui-ci doit contenir les détails de configuration du point de terminaison.
Le service customs-declarations
a une configuration default
et une configuration stub
. Notez que la configuration default
est déclarée directement dans la section 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"
}
Ce code est un logiciel open source sous licence Apache 2.0.