File size: 1,600 Bytes
b411033
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""
EXEMPLE : Comment ajouter une nouvelle source d'API

Pour ajouter une nouvelle source d'API, suivez ces étapes :

1. Créez une nouvelle classe qui hérite de BaseAPISource
2. Implémentez la méthode get_parcel_from_lat_lon
3. Ajoutez d'autres méthodes spécifiques si nécessaire
4. Intégrez la nouvelle source dans app.py

Exemple d'implémentation :
"""

import httpx
from typing import Dict, Any
from .base import BaseAPISource
from .config import API_CONFIGS


class ExempleAPI(BaseAPISource):
    """Exemple d'implémentation d'une nouvelle source d'API."""
    
    def __init__(self):
        config = API_CONFIGS.get("exemple_api", {
            "base_url": "https://exemple.com",
            "timeout": 30
        })
        super().__init__(
            base_url=config["base_url"],
            timeout=config["timeout"]
        )
    
    async def get_parcel_from_lat_lon(self, latitude: float, longitude: float) -> Dict[str, Any]:
        """Implémentation pour l'API exemple."""
        url = self._build_url("/api/parcelle")
        
        params = {
            "lat": latitude,
            "lon": longitude
        }
        
        async with httpx.AsyncClient(timeout=self.timeout) as client:
            response = await client.get(url, params=params)
            response.raise_for_status()
            return response.json()
    
    async def autre_methode_specifique(self, param: str) -> Dict[str, Any]:
        """Exemple d'une méthode spécifique à cette API."""
        url = self._build_url("/api/autre-endpoint")
        # ... implémentation
        pass