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:
Aku akan membahas tentang Insomnia lebih lanjut pada tulisan lain.
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 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:
Klik bahasa yang ingin dibangkitkan kodenya.
Membangkitkan Kode Client API
Klik “Generate Server” untuk melihat dukungan client yang akan konsum API:
Klik bahasa yang ingin dibangkitkan kodenya.
Penutup
Sekian pemaparan tentang OpenAPI dan bila ada salah mohon maaf, semoga bermanfaat.