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. Consulta la sezione Decoratori per informazioni dettagliate su tutti i decoratori disponibili.
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 alla raccolta api_class
. Ad esempio, se il nome della raccolta è
api_collection
, devi creare il server come segue: