Salt la conținutul principal
GET /schema e lista completă și mereu actuală a codurilor pe care le folosește API-ul: tipuri și subtipuri de proprietate, tranzacții, monede, câmpuri, niveluri, dotări. E construit din aceleași reguli pe care le aplică formularul Housera, deci ce acceptă formularul e exact ce publică vocabularul. E public: nu cere cheie, ca să-l poți citi înainte să-ți faci cont.
Nu copia listele din vocabular în codul tău. Citește-le din GET /schema (de exemplu la pornirea aplicației sau o dată pe zi) și construiește-ți maparea pe ele. Așa, un subtip sau o dotare nouă apare la tine fără modificări de cod.

Ce conține

Exemplul e scurtat: fiecare listă are în realitate toate elementele.

Câmpurile

Fiecare intrare din fields îți spune:
  • type, felul valorii: integer, decimal, boolean, text, code (o valoare din values), codes (o listă de valori din values), level (un cod de nivel), time (HH:MM), date (AAAA-LL-ZZ), country (ISO 3166-1 alpha-2), currency (ISO 4217), coordinates, object, objects;
  • unit, pentru numere: m2, m, year, month, night, percent, kw, count și altele, plus currency, adică moneda anunțului (price_currency);
  • types și transactions, combinațiile la care câmpul există. În afara lor, câmpul e ignorat și semnalat în warnings[];
  • values, codurile permise, cu etichete. Când lipsesc, values_from arată unde sunt (de exemplu levels sau currencies);
  • values_by_type, când valorile permise diferă de la un tip de proprietate la altul (de exemplu materialele de construcție ale unei hale față de ale unei case).
Vocabularul nu spune ce câmpuri sunt obligatorii; regulile acestea sunt în Câmpurile unui anunț. Cel mai sigur test rămâne POST /listings/validate.

Codurile retrase

Un cod nu dispare niciodată. Când un cod se schimbă, cel vechi trece în retired, cu succesorul lui:
  • kind spune ce fel de cod e: feature, subtype, field (un câmp redenumit) sau value:<câmp> (o valoare a unui câmp).
  • Dacă trimiți codul vechi, Housera îl citește ca pe succesor. Nu pierzi nimic și nu primești eroare.
  • În răspunsuri primești mereu codul nou. Actualizează-ți maparea când vezi un cod al tău în retired.

Limba etichetelor

locale=ro (implicit) sau locale=en schimbă doar etichetele (label). Codurile nu se traduc niciodată: apartment rămâne apartment în orice limbă.

Cache

Vocabularul se schimbă rar. Răspunsul are antetul ETag și poate fi păstrat în cache o oră. Ca să verifici ieftin dacă s-a schimbat, trimite ETag-ul primit în If-None-Match:
Dacă nu s-a schimbat nimic, primești 304 Not Modified, fără corp. Limita pentru GET /schema e de 60 de cereri pe minut per adresă IP, separată de limita cheilor tale.