Medio Web API
Medio Web API — integrációs áttekintés
Ez az oldal megmutatja, melyik API-végpont melyik szakaszt táplálja, milyen paraméterrel, mely mezőkből, és hogyan gyorsítótárazva.
- 7 végpont
- Adatforrás: Élő API
Adatfolyam
Minden adat a szerveren, a lib/medio-api modulon keresztül érkezik; a token sosem jut el a böngészőbe.
Ha a MEDIO_API_BASE és a MEDIO_API_TOKEN is be van állítva, a modul az élő API-t hívja (Bearer token, 8 mp időkorlát), különben a mock fixture-öket szolgálja ki.
Az élő válaszokat a Next.js adatgyorsítótára 300 másodpercig tárolja; hiba esetén a modul a mock adatra vált és naplóz.
A HTML-mezőket a szerver tisztítja (sanitize-html, inline stílusok nélkül), a foglalási beágyazás csak engedélyezett hosztról töltődik be.
Végpontok és felhasználásuk
| Végpont | Paraméter | Hol jelenik meg | Használt mezők | Gyorsítótár |
|---|---|---|---|---|
GET /institutionslib/medio-api · getInstitutions() | — | Telephelyek a főoldalon és a kapcsolat oldalon, a telephelyszűrő az árlistán, MedicalClinic JSON-LD. |
| 300 mp |
GET /specializationslib/medio-api · getSpecializations(intezmenyId?) | intezmeny_id | Szakterület-rács, szakterület-oldalak, szűrőchipek az orvoslistán, statisztika. |
| 300 mp |
GET /doctorslib/medio-api · getDoctorsBySpecialization(szakteruletId) | szakterulet_id | Orvoslista (szakterületenként összefűzve, azonosító szerint egyedítve), kiemelt orvosok, orvosprofil, Physician JSON-LD. |
| 300 mp |
GET /doctorlib/medio-api · getDoctorPricelist(doctorId) | doctor_id | Az orvosprofil saját árlistája. |
| 300 mp |
GET /qualification-priceslib/medio-api · getQualificationPrices(qualificationId) | qualification_id | A szakterület-oldal árlistája, szülő szolgáltatás szerint csoportosítva. |
| 300 mp |
GET /pricelistlib/medio-api · getPricelist() | — | A teljes árlista, a szolgáltatások száma, és az angol nevek forrása a többi végponthoz. |
| 300 mp |
GET /searchlib/medio-api · searchApi(q) | q | A keresés oldal, találattípus szerint csoportosítva. |
| 300 mp |
Az API hiányosságai és kezelésük
- A szakterületeknek nincs azonosító mezője: a qualificationId a link mező query paraméteréből származik.
- Az orvosoknak nincs azonosító mezője: a doctorId a naptar_script iframe-címéből (doctorId paraméter) származik.
- A szakterület-azonosító (szakterulet_id) és a qualificationId kapcsolata nincs dokumentálva: egyetlen függvény képezi le őket (lib/medio-api/ids.ts), a MEDIO_QUALIFICATION_MAP felülírhatja.
- Angol (*_eng) mező csak a /pricelist válaszban van; a szakterület- és szolgáltatásnevek angol változatát innen párosítjuk a többi végponthoz.
- Az API a klinika saját nyelvén (itt románul) küldi a szövegeket, angolul csak a /pricelist-ben: a többi nyelv a weboldal fordítási táblájából jön, és ahol nincs fordítás, ott jelölés jelenik meg.
- Az árak szövegként érkeznek (min_ar, max_ar), pénznem nélkül: a pénznem telephelyenként konfigurálható (MEDIO_CURRENCY_MAP).
- Több mező HTML-t tartalmaz inline stílusokkal (specializaciok, intezmenyi_hatter, tagsagok, esetleg bemutatkozas): a szerver tisztítja őket.
- A /specializations intezmeny_id paramétere a séma szerint kötelező, a leírás szerint opcionális; a demó paraméter nélkül hívja.
- A /search találattípusai közül csak a „qualification” dokumentált; a többi típus a value URL alapján kap belső linket, ha az azonosító kinyerhető.
Mintaválaszok az aktuális adatforrásból
Minden végpont első eleme, ahogy a lib/medio-api visszaadja.
GET /institutions1
{
"intezmeny_id": 132,
"intezmeny_nev": "Medio Demo Clinic S.R.L",
"varos": ""
}GET /specializations?intezmeny_id=13218
{
"intezmeny_id": 132,
"intezmeny_nev": "Medio Demo Clinic S.R.L",
"szakterulet": "Acupunctură",
"tipus_id": 2,
"tipus": "Felnőtt",
"link": "https://mediodemoclinicsrl.medflow.ro/services/10000087?qualificationId=10000087"
}GET /doctors?szakterulet_id=100000871
{
"intezmeny_id": 132,
"nev": "Prof. Mihai Stan",
"profilkep": "/doctors/102363.jpg",
"szakteruletek": "Acupunctură, Competenţă imunitară, ONCOLOGIE MEDICALĂ",
"bemutatkozas": "Atenție la detalii și utilizarea celor mai noi tehnologii medicale.",
"beszelt_nyelvek": "",
"specializaciok": "[HTML] Chirurgie minim invazivă",
"tanulmanyok": "[HTML] UMF 'Carol Davila', București",
"intezmenyi_hatter": "[HTML] Rețeaua Privată de Sănătate",
"tagsagok": "[HTML] Colegiul Medicilor din România, Societatea Română de Acupunctură",
"naptar_script": "[HTML iframe + script] https://mediodemoclinicsrl.medflow.ro/doctors/102363?doctorId=102363&qualificationId…",
"naptar_script_2": "[HTML iframe + script] https://mediodemoclinicsrl.medflow.ro/doctors/102363?doctorId=102363&qualificationId…",
"sorrend": 6
}GET /doctor?doctor_id=1023606
{
"intezmeny_id": 132,
"szakterulet_id": 10000083,
"szakterulet": "Competenţă imunitară",
"szulo_szolgaltatas_id": 10000083,
"szulo_szolgaltatas": "Competenţă imunitară",
"szolgaltatas": "Consultație imunologie",
"min_ar": "240",
"max_ar": "300",
"tipus_id": 2,
"tipus": "Felnőtt",
"link": "https://mediodemoclinicsrl.medflow.ro/services/10000083?serviceId=10000996,10001067,10001106,10001132,10001…",
"info_text": "Serviciu medical de consultație imunologie oferit în cadrul departamentului de Competenţă imunitară."
}GET /qualification-prices?qualification_id=100000873
{
"intezmeny_id": 132,
"szakterulet_id": 10000087,
"szakterulet": "Acupunctură",
"szakterulet_eng": "",
"szulo_szolgaltatas_id": 10000087,
"szulo_szolgaltatas": "Acupunctură",
"szolgaltatas": "Evaluare energetică și diagnostic acupunctură",
"szolgaltatas_eng": "",
"min_ar": "220",
"max_ar": "220",
"tipus_id": 2,
"tipus": "Felnőtt",
"link": "https://mediodemoclinicsrl.medflow.ro/services/10000087?serviceId=10001248",
"info_text": "Serviciu medical de evaluare energetică și diagnostic acupunctură oferit în cadrul departamentului de Acupu…",
"info_text_eng": ""
}GET /pricelist55
{
"intezmeny_id": 132,
"szakterulet_id": 10000087,
"szakterulet": "Acupunctură",
"szakterulet_eng": "",
"szulo_szolgaltatas_id": 10000087,
"szulo_szolgaltatas": "Acupunctură",
"szolgaltatas": "Evaluare energetică și diagnostic acupunctură",
"szolgaltatas_eng": "",
"min_ar": "220",
"max_ar": "220",
"tipus_id": 2,
"tipus": "Felnőtt",
"link": "https://mediodemoclinicsrl.medflow.ro/services/10000087?serviceId=10001248",
"info_text": "Serviciu medical de evaluare energetică și diagnostic acupunctură oferit în cadrul departamentului de Acupu…",
"info_text_eng": ""
}GET /search?q=kardio0
null