This page describes how to decorate your code to create an API implemented in multiple classes. If you implemented your API using only one class, see Creating the API. See Decorators for detailed information about all the available decorators.
Replace api_collection with any name you want, so long as you use
the same name for each class in the API. You must precede each class in the API
with the decorator as shown in the preceding snippet.
About the resource_name argument
The optional resource_name argument for api_class is the name of the class
that you want to expose in the API; this is the name that shows up in the
API Explorer, prepended to any methods exposed in the class.
About the path argument
The optional path argument for api_class specifies the relative location at
which the class methods appear in the URL. In the preceding example, a path
isn't specified for the class Shelves, so its methods are accessible under the
root, /_ah/api/library/v1. For example, the list method is accessible from
the path /_ah/api/library/v1/list.
If you specify a path argument for a class, the specified path is appended to
the root. In the preceding example, the path argument books is specified for
the class Books, so its methods are accessible under
/_ah/api/library/v1/books. For example, the best_sellers_list method is
accessible from the path /_ah/api/library/v1/books/best_sellers_list.
The path argument is optional for methods. If you don't specify a path, the
method name is used. Any paths specified for methods are appended to the class
path. In the preceding example, bookmark is specified as the path for the
get_bookmark method. The get_bookmark method is accessible from the path
/_ah/api/library/v1/books/bookmark.
You can override the class path argument by specifying a method path
argument that begins with /. For example, assume that the get_bookmark
method in the Books class has the following path:
@endpoints.method(Request, Response, path='/bookmark') def get_bookmark(self, request): return Response()
The leading slash changes the path for the get_bookmark method to
/_ah/api/library/v1/bookmark.
Serving a multi-class API
In your endpoints.api_server
code that creates the API server, you supply the name you assigned for your
api_class collection. For example, where the collection name is
api_collection you would create the server as follows: