> For the complete documentation index, see [llms.txt](https://doc.dastra.eu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.dastra.eu/api-references/cas-dusage-de-lapi.md).

# Cas d'usage de l'API

Basé sur les spécifications de la documentation de l'API Dastra, voici un guide pour trois cas d'usage courants, ainsi que des exemples en Python utilisant AIOHTTP pour effectuer les requêtes :

#### Prérequis

Assurez-vous d'avoir installé AIOHTTP dans votre environnement :

```sh
pip install aiohttp
```

#### 1. Créer une Pièce Jointe Associée à une Demande de Droit

**Endpoint**: `/datasubjectattachments`

**Méthode**: POST

**Description**: Cet endpoint est utilisé pour créer une pièce jointe associée à une demande de droit.

**Exemple de Requête**:

```python
import aiohttp
import asyncio

async def create_attachment(workspace_id, api_key, attachment_data):
    url = f"https://api.dastra.eu/v1/ws/{workspace_id}/datasubjectattachments"
    
    headers = {
        "Content-Type": "application/json",
        "X-Api-Key": api_key
    }

    async with aiohttp.ClientSession() as session:
        async with session.post(url, json=attachment_data, headers=headers) as response:
            return await response.json()

# Exemple d'utilisation
workspace_id = "votre_workspace_id"
api_key = "votre_api_key"
attachment_data = {
    # Remplir avec les données de votre pièce jointe
    "dataSubjectRequestId": "id_de_la_demande",
    "fileName": "exemple.pdf",
    "fileContent": "contenu_encodé_base64"
}

response = asyncio.run(create_attachment(workspace_id, api_key, attachment_data))
print(response)
```

#### 2. Envoyer un Message avec la Pièce Jointe dans une Demande de Droit

**Endpoint**: `/datasubjectmessages`

**Méthode**: POST

**Description**: Cet endpoint est utilisé pour envoyer un message avec une pièce jointe dans une demande de droit.

**Exemple de Requête**:

```python
import aiohttp
import asyncio

async def send_message_with_attachment(workspace_id, api_key, message_data):
    url = f"https://api.dastra.eu/v1/ws/{workspace_id}/datasubjectmessages"
    
    headers = {
        "Content-Type": "application/json",
        "X-Api-Key": api_key
    }

    async with aiohttp.ClientSession() as session:
        async with session.post(url, json=message_data, headers=headers) as response:
            return await response.json()

# Exemple d'utilisation
workspace_id = "votre_workspace_id"
api_key = "votre_api_key"
message_data = {
    # Remplir avec les données de votre message
    "requestId": "id_de_la_demande",
    "subject": "Objet du message",
    "body": "Contenu du message",
    "attachmentId": "id_de_la_pièce_jointe"  # ID de la pièce jointe créée précédemment
}

response = asyncio.run(send_message_with_attachment(workspace_id, api_key, message_data))
print(response)
```

#### 3. Récupérer les Nouvelles Demandes Selon des Filtres

**Endpoint**: `/DataSubjectRequests`

**Méthode**: GET

**Description**: Cet endpoint est utilisé pour récupérer de nouvelles demandes de droit en fonction de filtres spécifiés.

**Exemple de Requête**:

```
import aiohttp
import asyncio

async def get_new_requests(workspace_id, api_key, filters):
    url = f"https://api.dastra.eu/v1/ws/{workspace_id}/DataSubjectRequests"
    
    headers = {
        "Content-Type": "application/json",
        "X-Api-Key": api_key
    }

    params = {
        "filters": filters  # Les filtres doivent être une chaîne JSON
    }

    async with aiohttp.ClientSession() as session:
        async with session.get(url, headers=headers, params=params) as response:
            return await response.json()

# Exemple d'utilisation
workspace_id = "votre_workspace_id"
api_key = "votre_api_key"
filters = '{"field":"status","operator":"equal","value":"new"}'  # Exemple de filtre

response = asyncio.run(get_new_requests(workspace_id, api_key, filters))
print(response)
```

#### Conclusion

Ce guide fournit une approche étape par étape pour interagir avec l'API Dastra en utilisant Python et AIOHTTP. Remplacez les espaces réservés comme `workspace_id`, `api_key`, et les données de requête par vos données réelles.

N'hésitez pas à ajuster les critères de filtrage et les charges utiles des requêtes selon vos besoins.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://doc.dastra.eu/api-references/cas-dusage-de-lapi.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
