Membuat API menggunakan Framework Cloud Endpoints untuk Python

API adalah layanan remote procedure call (RPC) yang menyediakan metode jarak jauh yang dapat diakses oleh klien eksternal. Setiap backend API terdiri dari class layanan RPC yang merupakan subclass dari class ProtoRPC remote.Service, dan satu atau beberapa metode. Saat menentukan metode, Anda juga harus menentukan class Message untuk permintaan yang masuk ke metode tersebut dan respons yang dikembalikan olehnya. Class Message melakukan fungsi pemetaan sehingga data yang masuk dapat diekstrak dan diberikan ke metode layanan dengan benar, atau diberikan dengan benar ke respons keluar.

Jika permintaan memiliki argumen jalur atau string kueri, Anda menggunakan class ResourceContainer untuk pemetaan, bukan class Message sederhana.

Terakhir, Anda perlu menghias class layanan API dan metode class, serta Anda perlu menentukan class Message untuk permintaan dan respons.

Membuat API

Prosedur berikut menunjukkan cara menghias kode untuk membuat API yang diterapkan dalam satu class. Jika Anda memiliki API multi-class, lihat Membuat API yang diimplementasikan dengan beberapa class. Lihat Decorator untuk mengetahui informasi mendetail tentang semua decorator yang tersedia.

Untuk membuat API:

  1. Tambahkan impor yang diperlukan berikut:

    import endpoints
    from endpoints import message_types
    from endpoints import messages
    from endpoints import remote
  2. Tentukan subclass remote.Service dan hiasi dengan @endpoints.api:

    @endpoints.api(name="echo", version="v1")
    class EchoApi(remote.Service):

    Perhatikan bahwa nama API dan nama class layanan Anda tidak harus sama. Nomor versi berlaku untuk versi API. Nilai yang Anda masukkan akan menjadi bagian dari jalur di URL ke API Anda. Untuk mengetahui informasi selengkapnya tentang versi, lihat Menangani pembuatan versi API.

  3. Tentukan data apa yang diharapkan metode Anda dari permintaan dan data apa yang dikembalikan, lalu buat class Message untuk isi permintaan dan isi respons:

    class EchoRequest(messages.Message):
        message = messages.StringField(1)
    
    
    class EchoResponse(messages.Message):
        """A proto Message that contains a simple string field."""
    
        message = messages.StringField(1)
    
    
    ECHO_RESOURCE = endpoints.ResourceContainer(
        EchoRequest, n=messages.IntegerField(2, default=1)
    )

    Perhatikan bahwa jika tidak ada argumen yang muncul di isi permintaan, seperti dalam permintaan GET, Anda dapat menghapus class Message untuk permintaan dan cukup menggunakan nilai message_types.VoidMessage.

    Jika permintaan Anda memiliki argumen string kueri atau jalur, ganti class Message Anda dengan ResourceContainer yang sesuai.

    Untuk mengetahui informasi lengkap tentang pembentukan dan penggunaan class Message, lihat dokumentasi untuk class Message permintaan dan respons Google Protocol RPC.

  4. Buat metode untuk API Anda, dan hiasi dengan @endpoints.method:

    @endpoints.method(
            # This method takes a ResourceContainer defined above.
            ECHO_RESOURCE,
            # This method returns an Echo message.
            EchoResponse,
            path="echo",
            http_method="POST",
            name="echo",
        )
        def echo(self, request):

    Jika permintaan Anda memiliki data jalur atau string kueri, ganti jenis pesan permintaan dengan ResourceContainer yang sesuai.

  5. Tambahkan kode untuk menayangkan API Anda, seperti yang dijelaskan dalam Membuat server web.

Langkah berikutnya