Membuat API menggunakan Framework Cloud Endpoints untuk Python

API adalah layanan remote prosedur call (RPC) yang menyediakan metode jarak jauh yang dapat diakses oleh klien eksternal. Setiap API backend terdiri dari class layanan RPC yang membuat subclass untuk 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 ditampilkan olehnya. Class Message menjalankan 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, gunakan class ResourceContainer untuk pemetaan, bukan class Message sederhana.

Terakhir, Anda harus mendekorasi class layanan dan metode class API, serta harus menentukan class Message untuk permintaan dan respons.

Membuat API

Prosedur berikut menunjukkan cara mendekorasi kode untuk membuat API yang diterapkan dalam satu class. Jika Anda memiliki API multi-class, lihat Membuat API yang diterapkan dengan beberapa class. Lihat Dekorator untuk informasi mendetail tentang semua dekorator yang tersedia.

Untuk membuat API:

  1. Tambahkan impor yang diperlukan berikut ini:

    import endpoints
    from endpoints import message_types
    from endpoints import messages
    from endpoints import remote
    
  2. Tentukan subclass remote.Service dan hias 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 yang diharapkan metode Anda dari permintaan dan data yang ditampilkan, serta 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)
    )

    Perlu diketahui bahwa jika tidak ada argumen yang muncul dalam isi permintaan, seperti dalam permintaan GET, Anda dapat menghilangkan class Message untuk permintaan tersebut dan cukup menggunakan nilai message_types.VoidMessage.

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

    Untuk informasi lengkap tentang cara membentuk dan menggunakan class Message, lihat dokumentasi untuk respons dan class Message permintaan Google Protocol RPC.

  4. Buat metode untuk API Anda, lalu dekorasi 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 menyalurkan API Anda, seperti yang dijelaskan dalam Membuat server web.

Langkah selanjutnya