Esta página descreve como decorar o seu código para criar uma API implementada em várias classes. Se implementou a API com apenas uma classe, consulte o artigo Criar a API. Consulte a secção Decoradores para ver informações detalhadas sobre todos os decoradores disponíveis.
Substitua api_collection
por qualquer nome que quiser, desde que use o mesmo nome para cada classe na API. Tem de preceder cada classe na API com o decorador, conforme mostrado no fragmento anterior.
Acerca do argumento resource_name
O argumento resource_name
opcional para api_class
é o nome da classe que quer expor na API. Este é o nome que aparece no API Explorer, anteposto a quaisquer métodos expostos na classe.
Acerca do argumento path
O argumento path
opcional para api_class
especifica a localização relativa na qual os métodos da classe aparecem no URL. No exemplo anterior, não é especificado um path
para a classe Shelves
, pelo que os respetivos métodos são acessíveis na raiz, /_ah/api/library/v1
. Por exemplo, o método list
é acessível a partir do caminho /_ah/api/library/v1/list
.
Se especificar um argumento path
para uma classe, o caminho especificado é anexado à raiz. No exemplo anterior, o argumento path
é especificado para a classe Books
, pelo que os respetivos métodos são acessíveis em /_ah/api/library/v1/books
.books
Por exemplo, o método best_sellers_list
está
acessível a partir do caminho /_ah/api/library/v1/books/best_sellers_list
.
O argumento path
é opcional para métodos. Se não especificar um path
, é usado o nome do método. Todos os caminhos especificados para métodos são anexados ao caminho da classe. No exemplo anterior, bookmark
é especificado como o path
para o método get_bookmark
. O método get_bookmark
é acessível a partir do caminho
/_ah/api/library/v1/books/bookmark
.
Pode substituir o argumento path
da classe especificando um argumento path
do método que comece por /
. Por exemplo, suponha que o método get_bookmark
na classe Books
tem o seguinte caminho:
@endpoints.method(Request, Response, path='/bookmark') def get_bookmark(self, request): return Response()
A barra invertida inicial altera o caminho do método get_bookmark
para /_ah/api/library/v1/bookmark
.
Publicar uma API de várias classes
No código endpoints.api_server
que cria o servidor da API, fornece o nome que atribuiu à sua coleção api_class
. Por exemplo, onde o nome da coleção é
api_collection
, criaria o servidor da seguinte forma: