v1.0

Documentation
Iraka API

Accédez aux services Iraka depuis n'importe quelle application. API RESTful simple, sans authentification requise.

Endpoint de base
GET http://iraka.elido-ramiandrisoa.mg/apiv1/service

Utilisez ce point de terminaison pour récupérer les services. Combinez les paramètres pour affiner vos résultats.

Paramètres de requête
Paramètre Type Description
karoka string Recherche par mots-clés dans le titre et la description.
sokajy string Filtre par nom de catégorie.
user_iraka_id string Filtre par identifiant unique du prestataire.
Exemples d'utilisation
1

Recherche par mot-clé

Rechercher des services liés au web :
URL
GET http://iraka.elido-ramiandrisoa.mg/apiv1/service?karoka=web
2

Filtrer par prestataire (ID)

Afficher uniquement les services d'un utilisateur spécifique :
URL
GET http://iraka.elido-ramiandrisoa.mg/apiv1/service?user_iraka_id=AmZ4pUuFjCsqaTTyqdjw
3

Combinaison filtre + recherche

Rechercher un logo dans une catégorie spécifique :
URL
GET http://iraka.elido-ramiandrisoa.mg/apiv1/service?sokajy=Design Graphique & Création&karoka=logo
Intégration TypeScript
service.service.ts
1interface IrakaService {
2 iraka_id: string;
3 iraka_title: string;
4 sokajy: string;
5 vidiny: number;
6 sary: string;
7 mpanao_iraka: {
8 user_iraka_id: string;
9 anarana: string;
10 sary_piraofila: string;
11 };
12}
13
14async function getServices(search: string = ''): Promise<IrakaService[]> {
15 const BASE = 'http://iraka.elido-ramiandrisoa.mg';
16 const response = await fetch(BASE + '/apiv1/service?karoka=' + search);
17 const json = await response.json();
18 return json.data;
19}
Quick Start — Exemple complet

Copiez ce code dans un fichier .html pour afficher les services sur votre site.

index.html
1<!DOCTYPE html>
2<html>
3<head>
4 <style>
5 .iraka-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; padding: 20px; }
6 .iraka-card { border: 1px solid #eee; border-radius: 12px; padding: 15px; transition: 0.3s; }
7 .iraka-card:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
8 .iraka-img { width: 100%; height: 160px; object-fit: cover; border-radius: 8px; }
9 .iraka-cat { font-size: 0.75rem; color: #6366f1; font-weight: 700; margin: 10px 0 5px; }
10 .iraka-title { font-size: 1.1rem; margin: 5px 0; }
11 .iraka-provider { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #f5f5f5; }
12 .iraka-avatar { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; }
13 .iraka-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; }
14 .iraka-price { font-weight: 800; }
15 .iraka-rating { color: #facc15; font-size: 0.85rem; }
16 </style>
17</head>
18<body>
19 <div id="services-container" class="iraka-grid">Chargement...</div>
20 <script>
21 const BASE_URL = 'http://iraka.elido-ramiandrisoa.mg';
22 async function loadIraka() {
23 const res = await fetch(BASE_URL + '/apiv1/service');
24 const json = await res.json();
25 const el = document.getElementById('services-container');
26 el.innerHTML = json.data.map(function(svc) {
27 return [
28 '<div class="iraka-card">',
29 '<img src="' + BASE_URL + '/' + svc.sary + '" class="iraka-img">',
30 '<div class="iraka-cat">' + svc.sokajy + '</div>',
31 '<h3 class="iraka-title">' + svc.iraka_title + '</h3>',
32 '<div class="iraka-provider">',
33 '<img src="' + BASE_URL + '/' + svc.mpanao_iraka.sary_piraofila + '" class="iraka-avatar">',
34 '<span>' + svc.mpanao_iraka.anarana + '</span></div>',
35 '<div class="iraka-footer">',
36 '<div class="iraka-price">' + svc.vidiny_ar + '</div>',
37 '<div class="iraka-rating">★ ' + svc.statistika.naoty + '</div></div></div>',
38 ].join('');
39 }).join('');
40 }
41 loadIraka();
42 </script>
43</body>
44</html>
Exemple de réponse JSON
Response 200 OK
1{
2 "success": true,
3 "count": 1,
4 "data": [
5 {
6 "iraka_id": "ofeRyCC2BLdSt7WmawrR",
7 "iraka_title": "Création d'entreprise",
8 "sokajy": "Autre Service (Non listé)",
9 "zana_tsokajy": "Création d'entreprise ( NIF & STAT )",
10 "vidiny": 200000,
11 "vidiny_ar": "200 000 Ar",
12 "saokajy_vidiny": "projet",
13 "sary": "innova.mg/irakaimage/rmslido/service/ofeRyCC2BLdSt7WmawrR",
14 "mpanao_iraka": {
15 "user_iraka_id": "AmZ4pUuFjCsqaTTyqdjw",
16 "anarana": "Faniry Hrentsoa",
17 "anarana_fohy": "Faniry",
18 "sary_piraofila": "innova.mg/irakaimage/rmslido/avatar/AmZ4pUuFjCsqaTTyqdjw",
19 "voamarina": true,
20 "an_tserasera": false
21 },
22 "statistika": {
23 "naoty": 0,
24 "isan_ny_hevitra": 0
25 },
26 "toerana": {
27 "faritra": "ANALAMANGA",
28 "distrika": "ANTANANARIVO"
29 }
30 }
31 ]
32}
Codes d'erreur
400 Bad Request

Terme de recherche trop court ou paramètres invalides.

500 Server Error

Erreur interne du serveur lors du traitement de la requête.

Copié !