From 07fddc23d2d24a09cdf7cdfce0e1757d1ae54634 Mon Sep 17 00:00:00 2001 From: camilner-hdr Date: Wed, 17 Jul 2024 14:19:40 +0100 Subject: [PATCH] Implementation of page for making and authenticated request --- .../making-an-authenticated-request.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/docs/using-our-apis/making-an-authenticated-request.md b/docs/using-our-apis/making-an-authenticated-request.md index e69de29..0e97065 100644 --- a/docs/using-our-apis/making-an-authenticated-request.md +++ b/docs/using-our-apis/making-an-authenticated-request.md @@ -0,0 +1,117 @@ +# Making an authenticated request +To make an authenticated request to our API, you need to ensure that you have a Private App configured on the Gateway, and have taken note of the `app_id` and `client_id`. These credentials must be included in the headers of any API requests where you are managing data. + +## Code Examples +The code examples below demonstrate how to make an authenticated request to the Gateway API using a simple get request for a dataset. Please make sure you replace `YOUR_APP_ID` and `YOUR_CLIENT_ID` with the actual `app_id` and `client_id` you obtained when creating a Private App. + +You can also test our APIs from the Swagger documentation in the link below. +[https://api.healthdatagateway.org/api/documentation#/](https://api.healthdatagateway.org/api/documentation#/) + + +=== "CURL" + + ``` bash + curl -X GET "https://api.healthdatagateway.org/api/v1/datasets" \ + --header "x-application-id: " \ + --header "x-client-id: " + ``` + +=== " python " + + ``` python + import requests + + url = "https://api.healthdatagateway.org/api/v1/datasets" + headers = { + "x-application-id": , + "x-client-id": + } + + response = requests.get(url, headers) + print(response.json()) + + ``` + +=== " Node.js " + + ``` js + const axios - require('axios') + + const url = ; + const headers = { + "x-application-id": , + "x-client-id": + }; + + axios.get(url, {headers: headers}) + .then(response => ( + console.log(response.data); + )) + .catch(error => { + console.error(error); + }); + ``` + +=== " C++ " + + ``` cpp + #include + #include + + int main() { + CURL *curl; + CURLcode res; + + curl = surl_easy_init(); + if(curl){ + curl_easy_setopt(curl, CURLOPT_URL, "https://api.healthdatagateway.org/api/v1/datasets"); + + struct curl_slist *headers = NULL; + headers - curl_slist_append(headers, "x-application-id: "); + headers - curl_slist_append(headers, "x-client-id: "); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); + + res = curl_easy_perform(curl); + + curl_slist_freee_all(headers); + curl_easy_cleanup(curl); + } + return 0 + } + ``` + +=== " Go " + + ``` go + package main + + import { + "ftm" + "io/ioutil" + "net/http" + } + + func main(){ + client := &http.Client{} + req, err := http.NewRequest("GET", "https://api.healthdatagateway.org/api/v1/datasets", nil) + if err != nil { + panic(err) + } + + req.Header.Add("x-application-id", ) + req.Header.Add("x-client-id", ) + + resp, err : client.Do(req) + if err != nil { + painc(err) + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.body) + if err != nil { + panic(err) + } + + ftm.Println(string(body)) + } + ``` \ No newline at end of file