Halo! Saya adalah mahasiswa S1 yang saat ini sedang menyiapkan tugas akhir (dan juga mencari kerja...).
Saat menulis server REST API dengan Flask, saya berpikir akan bagus jika ada template yang mencakup fitur-fitur yang umum masuk ke berbagai proyek, jadi saya membuat proyek terkait ini.
Fitur yang saat ini tersedia adalah sebagai berikut.
Pendaftaran anggota, login, dan autentikasi JWT (autentikasi token Refresh dan Access)
......- Autentikasi Flask-Admin (penerbitan otomatis cookie token Admin dan autentikasi)
......- Pembatalan token manual (membatalkan token pengguna tertentu yang sedang login)
......- Verifikasi alamat email dan reset kata sandi menggunakan email (token email)
Penggunaan fitur melalui docstring dan decorator Python
......- Definisi rute yang wajib login dan rute yang disarankan login
......- Definisi dan pembatasan parameter permintaan (pengelolaan field Required/Optional)
............- Validasi input Header/Body/Query
......- Dokumentasi penjelasan rute / parameter permintaan / respons yang mungkin untuk rute tersebut
Ekspor dokumentasi
......- Ekspor ke dokumen OpenAPI 3.0 YAML
......- Fitur pembuatan ER Diagram (output .dot)
Di antaranya, fitur login (autentikasi JWT) dan pembuatan dokumen OpenAPI 3 saya tulis sendiri menggunakan PyJWT dan apispec.
Untuk fitur pembuatan dokumen OpenAPI 3, Flask-RESTful dan Flask-RESTplus berada dalam status unmaintained, dan Flask-RESTX bukan gaya penggunaan yang saya inginkan.
Selain itu, untuk bagian login dan autentikasi, Flask-Login berbasis sesi dan saya tidak tahu bahwa Flask-JWT-Extended ada (...), jadi akhirnya saya menulisnya sendiri.
Karena saya masih mahasiswa S1 dan juga membuatnya dengan terburu-buru, komentar masih kurang dan kodenya juga belum rapi, tetapi saya akan sangat berterima kasih jika Anda melihatnya sebagai PoC bahwa API bisa didefinisikan dengan cara seperti ini!
(Sebenarnya saya sempat mengunggahnya sekali beberapa saat lalu, tetapi semua spasi indentasi di bagian fitur hilang (...), jadi saya hapus dan unggah lagi. Mohon pengertiannya!)
1 komentar
Wah, Anda masih mahasiswa S1 tapi sudah keren sekali. Semangat!!