I controller API RESTful in genere forniscono solo risorse correlate al proprio tipo?

3

Supponiamo che la mia API abbia i seguenti percorsi:

GET /theaters
GET /theaters/:id
GET /theaters/:id/movies
GET /movies
GET /movies/:id
GET /movies/:id/theaters

E poi ho i seguenti controller con i metodi elencati:

TheaterController
    list
    show

MovieController
    list
    show

Sto provando a decidere in quali controllori le richieste rimanenti sarebbero state gestite al meglio da una rigida prospettiva RESTful. Questo sarebbe

TheaterController
    listMoviesByTheater (handles GET /theaters/:id/movies)

MovieController
    showTheatersByMovie (handles GET /movies/:id/theaters)

o questo

TheaterController
    listByMovie (handles GET /movies/:id/theaters)

MovieController
    listByTheater (handles GET /theaters/:id/movies)

essere più RESTful? Se nessuno dei due è più RESTful, che è un approccio più comune?

Fondamentalmente, la domanda si riduce a che TheaterController debba solo fornire accesso alle risorse di Theatre e MovieController dovrebbe solo fornire accesso alle risorse di Movie.

    
posta Chad Johnson 11.02.2015 - 05:07
fonte

1 risposta

5

REST non ha nulla da dire su quali servizi controller quale URL.

Da una prospettiva puramente gerarchica, il tuo primo esempio ha più senso perché il primo (più generale) livello nell'URL viene gestito dal suo rispettivo controllore.

cioè.

/theaters/:id/movies -- belongs in the Theaters controller, and

/movies/:id/theaters -- belongs in the Movies controller.

Ma questo non ha nulla a che fare con REST. L'intero punto di REST è che una risorsa identificata da un URL specifico può essere localizzata ovunque.

    
risposta data 11.02.2015 - 05:19
fonte

Leggi altre domande sui tag