Skip to content

Commit

Permalink
Merge pull request #7 from HDRUK/feature/GAT-4585
Browse files Browse the repository at this point in the history
feature/gat 4585
  • Loading branch information
camilner-hdr authored Jul 17, 2024
2 parents 9de5b1a + 8cbe7e0 commit 1ea8ba7
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 2 deletions.
117 changes: 117 additions & 0 deletions docs/using-our-apis/making-an-authenticated-request.md
Original file line number Diff line number Diff line change
@@ -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: <YOUR_APP_ID >" \
--header "x-client-id: <YOUR_CLIENT_ID>"
```

=== " python "

``` python
import requests

url = "https://api.healthdatagateway.org/api/v1/datasets"
headers = {
"x-application-id": <YOUR_APP_ID>,
"x-client-id": <YOUR_CLIENT_ID>
}

response = requests.get(url, headers)
print(response.json())

```

=== " Node.js "

``` js
const axios - require('axios')

const url = ;
const headers = {
"x-application-id": <YOUR_APP_ID>,
"x-client-id": <YOUR_CLIENT_ID>
};

axios.get(url, {headers: headers})
.then(response => (
console.log(response.data);
))
.catch(error => {
console.error(error);
});
```

=== " C++ "

``` cpp
#include <iostream>
#include <curl/curl.h>

int main() {
CURL *curl;
CURLcode res;

curl = curl_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: <YOUR_APP_ID>");
headers - curl_slist_append(headers, "x-client-id: <YOUR_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 {
"fmt"
"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", <YOUR_APP_ID>)
req.Header.Add("x-client-id", <YOUR_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)
}

fmt.Println(string(body))
}
```
6 changes: 4 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ extra_css:

nav:
- Home: index.md
- Using the Gateway:
- Login: fe-login.md
- Accessing Our APIs:
- What is a Private App: private-app-what.md
- Create a Private App: private-app-create.md
- Manage a Private App: private-app-manage.md
- Using the Gateway:
- Login: fe-login.md
- Using our APIs:
- Making an authenticated request: using-our-apis/making-an-authenticated-request.md
- Integrations:
- HDR UK Datasets Integration: integrations-hdruk-datasets.md
- Metadata:
Expand Down

0 comments on commit 1ea8ba7

Please sign in to comment.