PUT /listings/{code}/photos, care primește lista completă, în ordine. Fiecare poză vine fie dintr-un URL public, fie dintr-un fișier pe care l-ai urcat direct pe Housera. Ai nevoie de o cheie cu dreptul media:write.
Lista e adevărul
- Ordinea din listă e ordinea de pe anunț. Prima poză e coperta.
- O poză care lipsește din listă se șterge de pe anunț.
- O poză deja pe anunț rămâne, dacă o trimiți din nou cu același URL: nu se descarcă a doua oară, doar își ia noua poziție și noile etichete.
- O listă goală (
"photos": []) șterge toate pozele anunțului. - Un anunț are cel mult 100 de poze.
"media": { "processing": true }. Când redevine false, pozele sunt pe anunț, în images.
Varianta 1: URL-uri publice
Cea mai simplă variantă, dacă pozele tale sunt deja pe un server accesibil din internet. Housera le descarcă singură. Condiții pentru un URL:- HTTPS, cel mult 2.048 de caractere;
- pe o adresă publică (nu o rețea internă);
- răspunde în cel mult 20 de secunde, cu cel mult două redirecționări;
- fișierul are cel mult 20 MB și e o imagine JPEG, PNG sau WebP.
Varianta 2: upload direct
Pentru fișiere care nu au un URL public (stau pe discul serverului tău sau într-un spațiu privat), le urci direct, în trei pași.1
Ceri un URL de upload
POST /uploads cu tipul și mărimea exactă a fișierului, în octeți:content_type e image/jpeg, image/png sau image/webp. content_length e cel mult 20 MB (20.971.520 de octeți).2
Urci fișierul direct la URL
Un URL-ul e valabil 15 minute. Un răspuns
PUT cu fișierul în corp, la url-ul primit, fără antetul Authorization. Content-Type și Content-Length trebuie să fie exact cele declarate la pasul anterior: fac parte din semnătură, iar un fișier cu alt tip sau altă mărime e refuzat.200 de la acest URL înseamnă că fișierul a ajuns.3
Pui cheia în lista de poze
Trimiți O cheie nefolosită se șterge după aproximativ 24 de ore, așa că o folosești în aceeași zi. O cheie poate fi folosită doar de contul care a cerut-o.
key primit la pasul 1 în PUT /listings/{code}/photos, în locul unui URL:La crearea anunțului poți trimite direct cheile urcate, în
photo_keys (o listă de chei, în ordine) și, opțional, photo_meta (o listă de etichete {floor, rooms}, aliniată cu photo_keys). Pentru orice schimbare ulterioară folosești PUT /listings/{code}/photos.Etichetele
Fiecare poză poate avea două etichete opționale, afișate pe anunț și folosite la gruparea pozelor:string[]
Încăperile din poză, cel mult 3 coduri:
living, kitchen, bedroom, bathroom, balcony, yard, facade, view și altele. Lista completă e în photo_rooms din vocabular.string
Nivelul pe care e făcută poza, ca cod de nivel:
ground, floor_1, basement, attic… (vezi levels din vocabular).422, cu pointer pe poza respectivă (de exemplu /photos/2/rooms/0).
Ce se întâmplă cu o poză
Înainte să apară pe anunț, fiecare poză e verificată și pregătită:- conținutul trebuie să fie chiar o imagine JPEG, PNG sau WebP, de cel mult 100 de megapixeli;
- metadatele de localizare (coordonatele GPS din EXIF) sunt șterse, ca locația exactă a fotografului să nu ajungă publică;
- antivirusul verifică fiecare fișier;
- duplicatele (aceeași imagine de două ori în listă) se atașează o singură dată.
media.failed, cu numărul de poze și motivul:
Pozele pe un anunț publicat
Pe un anunțactive, o listă nouă de poze nu se aplică imediat: se alătură editării care așteaptă moderarea (moderation.edit_pending: true), exact ca o modificare de text. Pe un anunț încă nepublicat (pending), pozele se aplică direct. Pe un anunț respins (rejected), o listă nouă de poze se aplică și retrimite anunțul la moderare, ca orice corectură.