2015-04-24 21 views
6

voglio avere la possibilità di specificare le dimensioni dell'immagine di un prodotto in una sola richiesta, mi hanno idee diverse su questo, qui sono:parametri specificando in REST API richiesta GET

mysuperstore.com/api/categories/40/products/53?width=100&height=100 

Penso che questo sia cattiva pratica, perché non è chiaro cosa significhi larghezza e altezza, forse c'è la dimensione fisica del prodotto.

Un'altra variante è:

mysuperstore.com/api/categories/40/products/53/image?width=100&height=100 

sembra piuttosto buona, ma devo fare due richieste in questo caso, sembra che è un altro ID di risorsa (immagine).

Prima richiesta è per il prodotto

mysuperstore.com/api/categories/40/products/53/ 

secondo è per l'URL dell'immagine

mysuperstore.com/api/categories/40/products/53/image?width=100&height=100 

Sì, non ho bisogno di tornare di immagine RAW (dati), ma proprio URL.
Sto creando API sul server PHP utilizzando Slim Framework. Ho trovato un esempio di tale richiesta API con parametri opzionali

$app->get('/archive(/:year(/:month(/:day)))', function ($year = 2010, $month = 12, $day = 05) use ($app) { 
    echo sprintf('%s-%s-%s', $year, $month, $day); 
    print_r($app->request()->get()); 
}); 

Così l'URL precedente corrisponderà questo esempio e posso passare tutti i parametri necessari in una sola richiesta.

Quindi le mie domande sono se è una buona pratica farlo, forse questo URL può essere confusibile per qualcuno che non ha familiarità con API.

mysuperstore.com/api/categories/40/products/53/image?width=100&height=100 

Così mi sto chiedendo qualcuno più esperto in questo di me, il mio obiettivo è quello di creare API che possono essere chiaramente capire senza leggere tonnellate di documentazione delle API. E la mia API dovrebbe seguire tutte le migliori pratiche.

Ecco perché sto facendo questa domanda, spero che qualcuno possa aiutarmi in questo.

risposta

3

farei questo:

mysuperstore.com/api/categories/40/products/53/?image[width]=100&image[height]=100 
+0

Grazie seguirò il tuo consiglio. – cbyoueyq

0

credo che la sua non legati al quadro SLIM, ma più una questione implementazione di progettazione. Puoi sempre controllare questo guide sulle best practice di progettazione dell'API.

Per le tue domande su immagine in particolare, è possibile seguire Apple o Google linee guida, stanno usando nome_immagine [WIDTH] x [HEIGHT] .jpeg, ex:

http://a4.mzstatic.com/us/r30/Purple7/v4/c2/36/25/c2362536-f6fc-4ef6-2a03-9b899ca00af9/screen480x480.jpeg

Immagini sono pre-generati e disponibili su CDN. A seconda del numero di chiamate che dovrai gestire, ma la generazione di nuove immagini al volo può comportare un notevole dispendio di tempo. Almeno dovresti memorizzare/memorizzare le immagini già generate.