Berkenalan dengan OpenAPI 2.0/Swagger

Kamu pasti pernah pakai aplikasi seperti WhatsApp atau Youtube di smartphone kamu, tetapi kenapa si mereka perlu internet ?

Aplikasi tersebut perlu internet untuk menghubungi server penyedia aplikasi, karena disana data dan konten kamu dioleh menjadi apa yang kamu ingin seperti pesan sampai ke penerima atau bisa menonton video.

Kok Bisa ya ?

Aplikasi di HP kamu dapat berkomunikasi dengan program di server menggunakan sebuah API .

Apa itu API ?

API atau Aplication Programming Interface adalah sebuah protokol yang menghubungkan antar bagian program untuk bertukar data.

Komunikasi antar program terjadi dengan pertukaran data, baik sebuah API internal (hanya dalam program) hingga API yang bisa di akses oleh program lain (Client-Server), sehingga aplikasi seperti WhatsApp dan Youtube dapat menerima data.

Ada banyak jenis API berdasarkan kebutuhanya seperti:

  • REST API (Populer digunakan di Web Server)
  • API dari sebuah pustaka (Fungsi yang kita pakai saat menggunakan pustaka)
  • SOAP
  • GraphQL

Daftar di atas merupakan API yang umum saya pakai, bisa cek disini untuk selengkapnya.

Tampilan aplikasi Insomnia untuk menguji REST API:

Insomnia REST API

Aku akan membahas tentang Insomnia lebih lanjut pada tulisan lain.

OpenAPI

OpenAPI

OpenAPI adalah standar dalam menuliskan gambaran desain API, agar memudahkan API yang kita bangun bisa dengan mudah intergrasi oleh pengembang lain dan tentunya tampilan grafis dari API kita.

OpenAPI juga dapat membangkitkan (generate) kode pengantar dari desain API yang kita tulis menggunakan alat bernama Swagger Editor dan bisa juga openapi-generator

Contoh sebuah desain API menggunakan OpenAPI:

swagger: "2.0"
info:
  title: "Contoh OpenAPI"
  description: "Begitulah"
  version: "Bliding Ej"
host: localhost:8080
schemes:
 - http
paths:
  "/todos":
    get:
      responses:
        "200":
          description: ""
          schema:
            type: array
            items:
              properties:
                task:
                  type: string
                  example: "tidur"
                selesai:
                  type: boolean
                  example: false
        "500":
          description: "Internal Error"
    post:
      parameters:
        - in: body
          name: body
          schema:
            properties:
              task:
                type: string
                example: "tidur"
              selesai:
                type: boolean
                example: false
      responses:
        "201":
          description: "Berhasil membuat Task"
        "422":
          description: "Input tidak benar"
        "500":
          description: "Internal Error"

Tampilanya di Swagger Editor

Swagger Editor

Swagger menggunakan format YAML untuk memudahkan pembacaan dan lengkukan kode dibantu oleh Editor agar sesuai.

Sekarang kita rangkum bagian ini:

  • OpenAPI: Spesifikasi untuk desain API.
  • Swagger Editor: Tools untuk membantu kita menulis spesifikasi OpenAPI.

Membangkitkan OpenAPI dengan Swagger Editor

Contoh ini kita mengguankan Swagger Editor agar mudah.

Swagger Editor bisa membangkitkan kode untuk Server (Penyedia API) dan Client (Pengguna API) API ke dalam bahasa pemrograman yang di dukung Swagger Editor, jadi kita cukup menuliskan logik menyesuaikan desain yang sebelumnya telah dibuat.

Membangkitkan Kode Server API

Pada Swagger Editor klik “Generate Server” pada bagian navigasi untuk melihat dukungan bahasa pemrograman untuk membangkitkan spesifikasi server:

Daftar bahasa untuk bagian server API

Klik bahasa yang ingin dibangkitkan kodenya.

Membangkitkan Kode Client API

Klik “Generate Server” untuk melihat dukungan client yang akan konsum API:

Daftar bahasa untuk bagian server API

Klik bahasa yang ingin dibangkitkan kodenya.

Penutup

Sekian pemaparan tentang OpenAPI dan bila ada salah mohon maaf, semoga bermanfaat.