This microservice stores definitions and values for the HMRC Developer Hub.
| Path | Method | Description |
|---|---|---|
/definition/context/:apiContext/version/:apiVersion |
PUT |
Creates or updates the definitions of the subscriptions fields for an API |
/definition/context/:apiContext/version/:apiVersion |
GET |
Retrieves the definitions of subscription fields for an API |
/definition |
GET |
Retrieves the definitions of subscription fields for all APIs |
/definition/context/:apiContext/version/:apiVersion |
DELETE |
Deletes the definitions of all subscriptions fields for an API |
/field/application/:clientId/context/:apiContext/version/:apiVersion |
PUT |
Creates or updates the field values of an API subscription |
/field/application/:clientId/context/:apiContext/version/:apiVersion |
GET |
Retrieves the field values of an API subscription by providing the application and API details |
/field/:fieldsId |
GET |
Retrieves the field values of an API subscription by providing the fieldsId |
/field/application/:clientId |
GET |
Retrieves the field values of all API subscriptions related to a specific application |
/field |
GET |
Retrieves the field values of all API subscriptions |
/field/application/:clientId/context/:apiContext/version/:apiVersion |
DELETE |
Deletes the field values of an API subscription |
Creates or updates the definitions of the subscriptions fields for an API
| Status | Description |
|---|---|
| 201 | Created |
| 200 | Updated |
curl -v -X PUT "http://localhost:9650/definition/context/hello/version/1.0" -H "Cache-Control: no-cache" -H "Content-Type: application/json" -d '{ "fieldDefinitions": [ { "name": "callback-url", "description": "Callback URL", "type": "URL" }, { "name": "token", "description": "Secure Token", "type": "SecureToken" } ] }'
{
"fieldDefinitions": [
{
"name": "callback-url",
"description": "Callback URL",
"type": "URL"
},
{
"name": "token",
"description": "Secure Token",
"type": "SecureToken"
}
]
}{
"apiContext": "hello",
"apiVersion": "1.0",
"fieldDefinitions": [
{
"name": "callback-url",
"description": "Callback URL",
"type": "URL"
},
{
"name": "token",
"description": "Secure Token",
"type": "SecureToken"
}
]
}Retrieves the definitions of subscription fields for an API
| Status | Description |
|---|---|
| 200 | Updated |
| 404 | Not found |
curl -v -X GET "http://localhost:9650/definition/context/hello/version/1.0" -H "Cache-Control: no-cache"
None
{
"apiContext": "hello",
"apiVersion": "1.0",
"fieldDefinitions": [
{
"name": "callback-url",
"description": "Callback URL",
"type": "URL"
},
{
"name": "token",
"description": "Secure Token",
"type": "SecureToken"
}
]
}Retrieves the definitions of subscription fields for all APIs
| Status | Description |
|---|---|
| 200 | OK |
curl -v -X GET "http://localhost:9650/definition" -H "Cache-Control: no-cache"
None
{
"apis": [
{
"apiContext": "hello",
"apiVersion": "1.0",
"fieldDefinitions": [
{
"name": "callback-url",
"description": "Callback URL",
"type": "URL"
},
{
"name": "token",
"description": "Secure Token",
"type": "SecureToken"
}
]
},
{
"apiContext": "ciao",
"apiVersion": "2.0",
"fieldDefinitions": [
{
"name": "address",
"description": "where you live",
"type": "STRING"
},
{
"name": "number",
"description": "telephone number",
"type": "STRING"
}
]
}
]
}Deletes the definitions of all subscriptions fields for an API
| Status | Description |
|---|---|
| 204 | Deleted |
| 404 | Not found |
curl -v -X DELETE "http://localhost:9650/definition/context/hello/version/1.0" -H "Cache-Control: no-cache"
None
None
Creates or updates the field values of an API subscription
| Status | Description |
|---|---|
| 201 | Created |
| 200 | Updated |
curl -v -X PUT "http://localhost:9650/field/application/hBnFo14C0y4SckYUbcoL2PbFA40a/context/hello/version/1.0" -H "Cache-Control: no-cache" -H "Content-Type: application/json" -d '{ "fields" : { "callback-url" : "http://localhost:8080/callback", "token" : "abc59609za2q" } }'
{
"fields": {
"callback-url": "http://localhost:8080/callback",
"token": "abc59609za2q"
}
}{
"clientId": "hBnFo14C0y4SckYUbcoL2PbFA40a",
"apiContext": "hello",
"apiVersion": "1.0",
"fieldsId": "55c2b945-1c82-4749-b4fc-42e5u32192ew",
"fields": {
"callback-url": "http://localhost:8080/callback",
"token": "abc59609za2q"
}
}Retrieves the field values of an API subscription by providing the application and API details
| Status | Description |
|---|---|
| 200 | OK |
| 404 | Not found |
curl -v -X GET "http://localhost:9650/field/application/hBnFo14C0y4SckYUbcoL2PbFA40a/context/hello/version/1.0" -H "Cache-Control: no-cache"
None
{
"clientId": "hBnFo14C0y4SckYUbcoL2PbFA40a",
"apiContext": "hello",
"apiVersion": "1.0",
"fieldsId": "55c2b945-1c82-4749-b4fc-42e5u32192ew",
"fields": {
"callback-url": "http://localhost:8080/callback",
"token": "abc59609za2q"
}
}Retrieves the field values by providing the fieldsId
| Status | Description |
|---|---|
| 200 | OK |
| 404 | Not found |
curl -v -X GET "http://localhost:9650/field/55c2b945-1c82-4749-b4fc-42e5u32192ew" -H "Cache-Control: no-cache"
None
{
"clientId": "xp5036mSZooNOlD0Nfjz7LKnCy0a",
"apiContext": "hello",
"apiVersion": "1.0",
"fieldsId": "55c2b945-1c82-4749-b4fc-42e5u32192ew",
"fields": {
"callback-url": "http://localhost:8080/callback",
"token": "abc59609za2q"
}
}Retrieves the field values of all API subscriptions related to a specific application
| Status | Description |
|---|---|
| 200 | OK |
| 404 | Not found |
curl -v -X GET "http://localhost:9650/field/application/xp5036mSZooNOlD0Nfjz7LKnCy0a" -H "Cache-Control: no-cache"
None
{
"subscriptions": [
{
"clientId": "xp5036mSZooNOlD0Nfjz7LKnCy0a",
"apiContext": "hello",
"apiVersion": "1.0",
"fieldsId": "55c2b945-1c82-4749-b4fc-42e5u32192ew",
"fields": {
"callback-url": "http://localhost:8080/callback",
"token": "abc59609za2q"
}
},
{
"clientId": "xp5036mSZooNOlD0Nfjz7LKnCy0a",
"apiContext": "callme",
"apiVersion": "2.0",
"fieldsId": "66c2b945-1c82-4749-b4fc-42e5u39999ew",
"fields": {
"callback-url": "http://localhost:8081/callback",
"token": "def45609za2p"
}
}
]
}Retrieves the field values of all API subscriptions
| Status | Description |
|---|---|
| 200 | OK |
curl -v -X GET "http://localhost:9650/field" -H "Cache-Control: no-cache"
None
{
"subscriptions": [
{
"clientId": "xp5036mSZooNOlD0Nfjz7LKnCy0a",
"apiContext": "hello",
"apiVersion": "1.0",
"fieldsId": "55c2b945-1c82-4749-b4fc-42e5u32192ew",
"fields": {
"callback-url": "http://localhost:8080/callback",
"token": "abc59609za2q"
}
},
{
"clientId": "ab4536mPZooNOlD0Nfjz7LKuJy0b",
"apiContext": "callme",
"apiVersion": "2.0",
"fieldsId": "66c2b945-1c82-4749-b4fc-42e5u39999ew",
"fields": {
"callback-url": "http://localhost:8081/callback",
"token": "def45609za2p"
}
}
]
}Deletes the field values of an API subscription
| Status | Description |
|---|---|
| 204 | Deleted |
| 404 | Not found |
curl -v -X DELETE "http://localhost:9650/field/application/hBnFo14C0y4SckYUbcoL2PbFA40a/context/hello/version/1.0" -H "Cache-Control: no-cache"
None
None
Some tests require MongoDB to run. Thus, remember to start up MongoDB if you want to run the tests locally. There are unit tests, acceptance tests and code coverage reports. In order to run them, use this command line:
./precheck.sh
This code is open source software licensed under the Apache 2.0 License