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 API backend terdiri dari class layanan RPC yang membuat subclass 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 disediakan ke metode layanan dengan benar, atau disediakan 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 mendekorasi class layanan API dan metode class, dan Anda perlu menentukan class Message untuk permintaan dan respons.

Membuat API

Prosedur berikut menunjukkan cara mendekorasi kode untuk membuat API yang diimplementasikan dalam satu class. Jika Anda memiliki API multi-class, lihat Membuat API yang diimplementasikan dengan beberapa class. Lihat Dekorator untuk mengetahui informasi mendetail tentang semua dekorator 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 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, 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 dalam 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 jalur atau kueri, ganti class Message dengan ResourceContainer yang sesuai.

    Untuk informasi lengkap tentang cara membuat dan menggunakan class Message, lihat dokumentasi untuk class Message respons dan permintaan 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 selanjutnya