Questa pagina descrive come decorare il codice per creare un'API implementata in più classi. Se hai implementato l'API utilizzando una sola classe, consulta Creazione dell'API. Per informazioni dettagliate su tutti i decoratori disponibili, consulta Decoratori.
Sostituisci api_collection
con il nome che preferisci, purché sia lo stesso per ogni classe nell'API. Devi precedere ogni classe nell'API con il decoratore come mostrato nello snippet precedente.
Informazioni sull'argomento resource_name
L'argomento facoltativo resource_name
per api_class
è il nome della classe
che vuoi esporre nell'API. Si tratta del nome visualizzato nell'
Explorer API, anteposto a tutti i metodi esposti nella classe.
Informazioni sull'argomento path
L'argomento facoltativo path
per api_class
specifica la posizione relativa in cui vengono visualizzati i metodi della classe nell'URL. Nell'esempio precedente, non è specificato un path
per la classe Shelves
, pertanto i relativi metodi sono accessibili nella radice /_ah/api/library/v1
. Ad esempio, il metodo list
è accessibile dal percorso /_ah/api/library/v1/list
.
Se specifichi un argomento path
per un corso, il percorso specificato viene aggiunto alla radice. Nell'esempio precedente, l'argomento path
books
è specificato per la classe Books
, pertanto i relativi metodi sono accessibili in /_ah/api/library/v1/books
. Ad esempio, il metodo best_sellers_list
è accessibile dal percorso /_ah/api/library/v1/books/best_sellers_list
.
L'argomento path
è facoltativo per i metodi. Se non specifichi un path
, viene utilizzato il nome del metodo. Eventuali percorsi specificati per i metodi vengono aggiunti al percorso della classe. Nell'esempio precedente, bookmark
è specificato come path
per il metodo
get_bookmark
. Il metodo get_bookmark
è accessibile dal percorso
/_ah/api/library/v1/books/bookmark
.
Puoi sostituire l'argomento path
della classe specificando un argomento path
del metodo che inizia con /
. Ad esempio, supponiamo che il metodo get_bookmark
nella classe Books
abbia il seguente percorso:
@endpoints.method(Request, Response, path='/bookmark') def get_bookmark(self, request): return Response()
La barra iniziale modifica il percorso per il metodo get_bookmark
in
/_ah/api/library/v1/bookmark
.
Pubblicazione di un'API multiclasse
Nel codice endpoints.api_server
che crea il server API, fornisci il nome assegnato per la raccoltaapi_class
. Ad esempio, se il nome della raccolta è
api_collection
, devi creare il server come segue: