Python

Mengenal dan Menginstal FastAPI

Selamat datang, ini adalah artikel awal menginstal FastAPI sebagai pembuka sebelum kita mengenal lebih jauh bagaimana membuat aplikasi dengan Python dan FastAPI. Pada artikel ini kita akan mengenal bagaimana memasang dan mengkonfigurasi FastAPI. Pada akhir dari artikel, kalian sudah dapat membuat sebuah Rest API sederhana berbasis FastAPI.

Sebagai referensi, berikut adalah tautan yang akan digunakan untuk pada artikel serial FastAPI.

Referensi akan saya update secara berkala.

FastAPI adalah sebuah web framework untuk membangun sebuah API yang berbahasa Python. Framework ini dikenal cukup kencang yang disebutkan menyamai NodeJS dan Go.

A. Menginstal Python

Menginstal FastAPI sangat mudah, jika kawan-kawan belum memiliki python, maka saya sarankan silakan menginstalnya lebih dahulu. Bisa langsung melalui situs utamanya. Python yang akan kita gunakan adalah versi 3.x dan contoh yang saya gunakan adalah versi 3.8.

Silakan dicek versi berapa python yang ada di komputer dengan mengetikkan python pada terminal / command prompt. Berikut adalah contoh python yang saya gunakan.

Gambar 1. Python 3.7

Command prompt pada python ini yang disebut sebagai Python interpreter dimana kita bisa mengeksekusi perintah-perintah. Sementara gambar di atas hanya untuk membuktikan bahwa Python yang ada pada kita telah terpasang.

B. Menginstal FastAPI

Selanjutnya adalah memasang FastAPI. Sebelum kita masuk ke pemasangan FastAPI, saya akan jelaskan sedikit bagaimana cara kita memasang dan menggunakan paket-paket pustaka yang ada pada Python.

Saya menyarankan agar pustaka FastAPI dan lingkungan pengembangan yang kita gunakan untuk melakukan uji coba tidak tercampur maka perlu dibuatkan lingkungan tersendiri. Ada beberapa cara untuk membuat lingkungan pengembangan tersendiri dengan memasang paket lingkungan virtual.

Lingkungan virtual yang saya gunakan menggunakan bantuan dari miniconda/anaconda. Silakan instal miniconda/anaconda. Jika kapasitas komputer dan jaringan koneksi internet anda terbatas maka saya menyarankan memasang miniconda. Paket anaconda namun dengan lebih minimalis.

Setelah terpasang di komputer, langkah pertama yang perlu dilakukan adalah dengan membuat lingkungan virtual baru seperti contoh berikut ini.

$ conda create -n namalingkunganvirtual python=3.8

Perintah di atas akan membuat satu buah lingkungan virtual baru dengan Python versi 3.8. Aktifkan lingkungan virtual baru dengan perintah berikut.

$ conda activate namalingkunganvirtual

Selanjutnya terminal kita akan berubah dari base menjadi nama namalingkunganvirtual sesuai dengan nama yang telah kita buat. Setelah aktif maka langkah selanjutnya adalah dengan memasang FastAPI dengan cara sebagai berikut:

$ conda install -c conda-forge fastapi

Pilih “y” untuk melanjutkan memasang FastAPI. Buka kembali Python interpreter kita dan ketikkan perintah sebagai berikut.

Python 3.8.5 (default, Sep  3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import fastapi
>>>

Jika tidak ada pesan kesalahan maka FastAPI telah terpasang. Kita membutuhkan satu buah paket lagi yang bernama uvicorn. Silakan dipasang dengan cara yang sama.

$ conda install -c conda-forge uvicorn

Uvicorn ini adalah implementasi dari peladen web yang bersifat asinkron.

C. Aplikasi Hello World

Kita buat sebuah direktori baru untuk menyimpan contoh program yang akan kita buat. Saya akan menamakan direktori baru ini blog.

$ mkdir blog
$ cd blog

Gunakan text editor favorit anda kemudian buat satu buah berkas yang berisi kode berikut ini.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def utama():
return {"Hello" : "World"}

Untuk menjalankannya kita membutuhkan satu buah aplikasi yang bernama uvicorn yang sudah kita instal. Jalankan perintah di bawah ini:

$ uvicorn main:app --reload
←[32mINFO←[0m:     Uvicorn running on ←[1mhttp://127.0.0.1:8000←[0m (Press CTRL+C to quit)
←[32mINFO←[0m:     Started reloader process [←[36m←[1m26664←[0m]
←[32mINFO←[0m:     Started server process [←[36m22676←[0m]
←[32mINFO←[0m:     Waiting for application startup.
←[32mINFO←[0m:     Application startup complete.

Layanan ASGI telah berjalan pada port 8000. Silakan diakses dengan menggunakan perambah favorit yang kalian miliki. Tampilan pada layar perambah adalah Hello World.

Kode script pada main.py di atas membuat sebuah instance dari kelas FastAPI yang telah dimuat sebelumnya dengan paket fastapi. Sementara tidak perlu bingung dengan apa saja sebenarnya perintah yang telah kita tulis di kode main.py. Saya akan jelaskan secara bertahap.

Baris pertama, perintah “from fastapi import…” ini adalah memanggil pustaka fastapi. Perintah ini saya yakin sudah biasa bagi programmer Python pemula. Baris ketiga variabel app akan menjadi variabel instance dari FastAPI. Variabel app akan menjadi poin utama dalam pembuatan API.

Hal yang mungkin membingungkan bagi programmer awal Python adalah tanda a keong (“@“) yang disematkan sebelum fungsi utama. Dalam situs resmi Python, istilah yang digunakan adalah decorator. Saya belum menemukan padanan katanya dalam bahasa Indonesia. Perintah @app.get(“/”) menjelaskan bahwa fungsi tepat di bawahnya itu bertugas menangani permintaan dari klien ketika:

  • Halaman default atau index yang ditandai dengan “/” setelah nama domain diakses
  • Operasi yang digunakan untuk mengakses dalam hal ini menggunakan GET

Perlu dipahami bahwa ketika kita mengganti nama app dengan variabel lain maka semua turunannya pun juga wajib untuk diganti dan disesuaikan. Sebagai contoh variabel app akan saya ganti menjadi sebagai berikut:

from fastapi import FastAPI

aplikasiku = FastAPI()

@aplikasiku.get("/")
def utama():
	Return {"Hello" : "world"}

Variabel app saya ubah menjadi aplikasiku. Maka ketika uji coba dengan uvicorn pun yang dipanggil berbeda. Perintah pada uvicorn akan menyesuaikan sebagai berikut.

$ uvicorn main:aplikasiku --reload

D. Membuat Jalur dan Mendefinisikan Fungsinya

Jalur yang dimaksud disini adalah Path yang merupakan bagian akhir dari URL yang dimulai dengan “/”. Sebagai contoh ketika kita mengetikkan https://courses.andrey.web.id/komentar/fulan maka jalur disini adalah bagian “/komentar/fulan”.

Membuat jalur disini adalah bagaimana kita memanggil dengan operasi GET, POST, PUT, atau DELETE. Ini merupakan perintah standar dari metode HTTP. Jika kita akan menggunakan operasi POST maka decorator yang digunakan adalah app.post().

Sebagai contoh lain, saya tambahkan fungsi baru pada kode main.py setelah fungsi utama sebagai berikut.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def utama():
    return {"Hello" : "World"}

@app.get("/komentar/{komentar_id}")
def baca_komentar(komentar_id: int):
    return {"Komentar": komentar_id}

Silakan dibuka kembali perambah Firefox, Chrome atau apapun untuk menguji kembali. Jika uvicorn yang kita eksekusi pada command prompt tidak kita tutup maka otomatis uvicorn akan mendeteksi adanya perubahan pada kode yang kita buat dan akan langsung memuat ulang kembali.

Masukkan URL berikut pada perambah “http://localhost:8000/komentar/1“. Perambah akan menampilkan tulisan sebagai berikut:

Gambar 2. Tangkapan layar perambah

Perhatikan dengan baik jalur yang dibuat setelah “/komentar”. Disitu ada angka yang akan terus berubah secara dinamis menyesuaikan dengan apa yang kita tuliskan.

Sampai disini artikel awal dari menginstal FastAPI. Demikian, semoga bermanfaat.

Leave a Reply

Your email address will not be published. Required fields are marked *