Back to Collection Items
var
http: TChilkatHttp;
success: Integer;
queryParams: TChilkatJsonObject;
resp: IChilkatHttpResponse;
sbResponseBody: TChilkatStringBuilder;
jResp: TChilkatJsonObject;
respStatusCode: Integer;
Github_html_url: WideString;
Ingested_schema_version: WideString;
Ingestion_source: WideString;
Last_modified_time: WideString;
Origin: WideString;
Origin_detail: WideString;
Schema_version: WideString;
Dd_service: WideString;
Description: WideString;
Display_name: WideString;
Service_tier: WideString;
v_Email: WideString;
Slack: WideString;
Pagerduty: WideString;
Application: WideString;
Team: WideString;
id: WideString;
v_type: WideString;
j: Integer;
count_j: Integer;
instance_location: WideString;
keyword_location: WideString;
message: WideString;
name: WideString;
url: WideString;
strVal: WideString;
i: Integer;
count_i: Integer;
begin
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := TChilkatHttp.Create(Self);
queryParams := TChilkatJsonObject.Create(Self);
queryParams.UpdateInt('page[size]',10);
queryParams.UpdateInt('page[number]',0);
queryParams.UpdateString('schema_version','v1');
http.SetRequestHeader('Accept','application/json');
resp := http.QuickRequestParams('GET','https://api.app.ddog-gov.com/api/v2/services/definitions',queryParams.ControlInterface);
if (http.LastMethodSuccess = 0) then
begin
Memo1.Lines.Add(http.LastErrorText);
Exit;
end;
sbResponseBody := TChilkatStringBuilder.Create(Self);
resp.GetBodySb(sbResponseBody.ControlInterface);
jResp := TChilkatJsonObject.Create(Self);
jResp.LoadSb(sbResponseBody.ControlInterface);
jResp.EmitCompact := 0;
Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(jResp.Emit());
respStatusCode := resp.StatusCode;
Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode));
if (respStatusCode >= 400) then
begin
Memo1.Lines.Add('Response Header:');
Memo1.Lines.Add(resp.Header);
Memo1.Lines.Add('Failed.');
Exit;
end;
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "data": [
// {
// "attributes": {
// "meta": {
// "github-html-url": "<string>",
// "ingested-schema-version": "<string>",
// "ingestion-source": "<string>",
// "last-modified-time": "<string>",
// "origin": "<string>",
// "origin-detail": "<string>",
// "warnings": [
// {
// "instance-location": "<string>",
// "keyword-location": "<string>",
// "message": "<string>"
// },
// {
// "instance-location": "<string>",
// "keyword-location": "<string>",
// "message": "<string>"
// }
// ]
// },
// "schema": {
// "schema-version": "v1",
// "info": {
// "dd-service": "<string>",
// "description": "<string>",
// "display-name": "<string>",
// "service-tier": "<string>"
// },
// "contact": {
// "email": "<email>",
// "slack": "<string>"
// },
// "extensions": {
// "ut_a": {},
// "consequat_894": {}
// },
// "external-resources": [
// {
// "name": "<string>",
// "type": "url",
// "url": "<string>"
// },
// {
// "name": "<string>",
// "type": "repo",
// "url": "<string>"
// }
// ],
// "integrations": {
// "pagerduty": "<string>"
// },
// "org": {
// "application": "<string>",
// "team": "<string>"
// },
// "tags": [
// "<string>",
// "<string>"
// ]
// }
// },
// "id": "<string>",
// "type": "<string>"
// },
// {
// "attributes": {
// "meta": {
// "github-html-url": "<string>",
// "ingested-schema-version": "<string>",
// "ingestion-source": "<string>",
// "last-modified-time": "<string>",
// "origin": "<string>",
// "origin-detail": "<string>",
// "warnings": [
// {
// "instance-location": "<string>",
// "keyword-location": "<string>",
// "message": "<string>"
// },
// {
// "instance-location": "<string>",
// "keyword-location": "<string>",
// "message": "<string>"
// }
// ]
// },
// "schema": {
// "schema-version": "v1",
// "info": {
// "dd-service": "<string>",
// "description": "<string>",
// "display-name": "<string>",
// "service-tier": "<string>"
// },
// "contact": {
// "email": "<email>",
// "slack": "<string>"
// },
// "extensions": {
// "dolor1_9": {},
// "ea_7c": {},
// "consequat_a": {}
// },
// "external-resources": [
// {
// "name": "<string>",
// "type": "oncall",
// "url": "<string>"
// },
// {
// "name": "<string>",
// "type": "code",
// "url": "<string>"
// }
// ],
// "integrations": {
// "pagerduty": "<string>"
// },
// "org": {
// "application": "<string>",
// "team": "<string>"
// },
// "tags": [
// "<string>",
// "<string>"
// ]
// }
// },
// "id": "<string>",
// "type": "<string>"
// }
// ]
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
i := 0;
count_i := jResp.SizeOfArray('data');
while i < count_i do
begin
jResp.I := i;
Github_html_url := jResp.StringOf('data[i].attributes.meta.github-html-url');
Ingested_schema_version := jResp.StringOf('data[i].attributes.meta.ingested-schema-version');
Ingestion_source := jResp.StringOf('data[i].attributes.meta.ingestion-source');
Last_modified_time := jResp.StringOf('data[i].attributes.meta.last-modified-time');
Origin := jResp.StringOf('data[i].attributes.meta.origin');
Origin_detail := jResp.StringOf('data[i].attributes.meta.origin-detail');
Schema_version := jResp.StringOf('data[i].attributes.schema.schema-version');
Dd_service := jResp.StringOf('data[i].attributes.schema.info.dd-service');
Description := jResp.StringOf('data[i].attributes.schema.info.description');
Display_name := jResp.StringOf('data[i].attributes.schema.info.display-name');
Service_tier := jResp.StringOf('data[i].attributes.schema.info.service-tier');
v_Email := jResp.StringOf('data[i].attributes.schema.contact.email');
Slack := jResp.StringOf('data[i].attributes.schema.contact.slack');
Pagerduty := jResp.StringOf('data[i].attributes.schema.integrations.pagerduty');
Application := jResp.StringOf('data[i].attributes.schema.org.application');
Team := jResp.StringOf('data[i].attributes.schema.org.team');
id := jResp.StringOf('data[i].id');
v_type := jResp.StringOf('data[i].type');
j := 0;
count_j := jResp.SizeOfArray('data[i].attributes.meta.warnings');
while j < count_j do
begin
jResp.J := j;
instance_location := jResp.StringOf('data[i].attributes.meta.warnings[j].instance-location');
keyword_location := jResp.StringOf('data[i].attributes.meta.warnings[j].keyword-location');
message := jResp.StringOf('data[i].attributes.meta.warnings[j].message');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('data[i].attributes.schema.external-resources');
while j < count_j do
begin
jResp.J := j;
name := jResp.StringOf('data[i].attributes.schema.external-resources[j].name');
v_type := jResp.StringOf('data[i].attributes.schema.external-resources[j].type');
url := jResp.StringOf('data[i].attributes.schema.external-resources[j].url');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('data[i].attributes.schema.tags');
while j < count_j do
begin
jResp.J := j;
strVal := jResp.StringOf('data[i].attributes.schema.tags[j]');
j := j + 1;
end;
i := i + 1;
end;
Curl Command
curl -G -d "page[size]=10"
-d "page[number]=0"
-d "schema_version=v1"
-H "Accept: application/json"
https://api.app.ddog-gov.com/api/v2/services/definitions
Postman Collection Item JSON
{
"name": "Get all service definitions",
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/services/definitions?page[size]=10&page[number]=0&schema_version=v1",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"services",
"definitions"
],
"query": [
{
"key": "page[size]",
"value": "10",
"description": "Size for a given page. The maximum allowed value is 100."
},
{
"key": "page[number]",
"value": "0",
"description": "Specific page number to return."
},
{
"key": "schema_version",
"value": "v1",
"description": "The schema version desired in the response."
}
]
},
"description": "Get a list of all service definitions from the Datadog Service Catalog."
},
"response": [
{
"name": "OK",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/services/definitions?page[size]=10&page[number]=0&schema_version=v1",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"services",
"definitions"
],
"query": [
{
"key": "page[size]",
"value": "10",
"description": "Size for a given page. The maximum allowed value is 100."
},
{
"key": "page[number]",
"value": "0",
"description": "Specific page number to return."
},
{
"key": "schema_version",
"value": "v1",
"description": "The schema version desired in the response."
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"data\": [\n {\n \"attributes\": {\n \"meta\": {\n \"github-html-url\": \"<string>\",\n \"ingested-schema-version\": \"<string>\",\n \"ingestion-source\": \"<string>\",\n \"last-modified-time\": \"<string>\",\n \"origin\": \"<string>\",\n \"origin-detail\": \"<string>\",\n \"warnings\": [\n {\n \"instance-location\": \"<string>\",\n \"keyword-location\": \"<string>\",\n \"message\": \"<string>\"\n },\n {\n \"instance-location\": \"<string>\",\n \"keyword-location\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n },\n \"schema\": {\n \"schema-version\": \"v1\",\n \"info\": {\n \"dd-service\": \"<string>\",\n \"description\": \"<string>\",\n \"display-name\": \"<string>\",\n \"service-tier\": \"<string>\"\n },\n \"contact\": {\n \"email\": \"<email>\",\n \"slack\": \"<string>\"\n },\n \"extensions\": {\n \"ut_a\": {},\n \"consequat_894\": {}\n },\n \"external-resources\": [\n {\n \"name\": \"<string>\",\n \"type\": \"url\",\n \"url\": \"<string>\"\n },\n {\n \"name\": \"<string>\",\n \"type\": \"repo\",\n \"url\": \"<string>\"\n }\n ],\n \"integrations\": {\n \"pagerduty\": \"<string>\"\n },\n \"org\": {\n \"application\": \"<string>\",\n \"team\": \"<string>\"\n },\n \"tags\": [\n \"<string>\",\n \"<string>\"\n ]\n }\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n },\n {\n \"attributes\": {\n \"meta\": {\n \"github-html-url\": \"<string>\",\n \"ingested-schema-version\": \"<string>\",\n \"ingestion-source\": \"<string>\",\n \"last-modified-time\": \"<string>\",\n \"origin\": \"<string>\",\n \"origin-detail\": \"<string>\",\n \"warnings\": [\n {\n \"instance-location\": \"<string>\",\n \"keyword-location\": \"<string>\",\n \"message\": \"<string>\"\n },\n {\n \"instance-location\": \"<string>\",\n \"keyword-location\": \"<string>\",\n \"message\": \"<string>\"\n }\n ]\n },\n \"schema\": {\n \"schema-version\": \"v1\",\n \"info\": {\n \"dd-service\": \"<string>\",\n \"description\": \"<string>\",\n \"display-name\": \"<string>\",\n \"service-tier\": \"<string>\"\n },\n \"contact\": {\n \"email\": \"<email>\",\n \"slack\": \"<string>\"\n },\n \"extensions\": {\n \"dolor1_9\": {},\n \"ea_7c\": {},\n \"consequat_a\": {}\n },\n \"external-resources\": [\n {\n \"name\": \"<string>\",\n \"type\": \"oncall\",\n \"url\": \"<string>\"\n },\n {\n \"name\": \"<string>\",\n \"type\": \"code\",\n \"url\": \"<string>\"\n }\n ],\n \"integrations\": {\n \"pagerduty\": \"<string>\"\n },\n \"org\": {\n \"application\": \"<string>\",\n \"team\": \"<string>\"\n },\n \"tags\": [\n \"<string>\",\n \"<string>\"\n ]\n }\n },\n \"id\": \"<string>\",\n \"type\": \"<string>\"\n }\n ]\n}"
},
{
"name": "Forbidden",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/services/definitions?page[size]=10&page[number]=0&schema_version=v1",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"services",
"definitions"
],
"query": [
{
"key": "page[size]",
"value": "10",
"description": "Size for a given page. The maximum allowed value is 100."
},
{
"key": "page[number]",
"value": "0",
"description": "Specific page number to return."
},
{
"key": "schema_version",
"value": "v1",
"description": "The schema version desired in the response."
}
]
}
},
"status": "Forbidden",
"code": 403,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"<string>\",\n \"<string>\"\n ]\n}"
},
{
"name": "Too many requests",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/json"
},
{
"description": "Added as a part of security scheme: apikey",
"key": "DD-API-KEY",
"value": "<API Key>"
}
],
"url": {
"raw": "{{baseUrl}}/api/v2/services/definitions?page[size]=10&page[number]=0&schema_version=v1",
"host": [
"{{baseUrl}}"
],
"path": [
"api",
"v2",
"services",
"definitions"
],
"query": [
{
"key": "page[size]",
"value": "10",
"description": "Size for a given page. The maximum allowed value is 100."
},
{
"key": "page[number]",
"value": "0",
"description": "Specific page number to return."
},
{
"key": "schema_version",
"value": "v1",
"description": "The schema version desired in the response."
}
]
}
},
"status": "Too Many Requests",
"code": 429,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"errors\": [\n \"<string>\",\n \"<string>\"\n ]\n}"
}
]
}