0% menganggap dokumen ini bermanfaat (0 suara)
17 tayangan

Materi M14 API Pada Python

Diunggah oleh

Intan Ptr
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
17 tayangan

Materi M14 API Pada Python

Diunggah oleh

Intan Ptr
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 19

ALGORITMA & PEMROGRAMAN 2B

P E R T E M U A N K E 1 4 – A P I

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
01
Filtering
Mencari Data Tertentu

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
FLASK

FILTERING
Saat ini, pengguna hanya dapat melihat seluruh data, mereka
tidak dapat memfilter atau menemukan data tertentu. Meskipun ini
bukan masalahsaat ini, namun akan dengan cepat menjadi kurang
berguna saat jumlah data semakin bertambah banyak. Di bagian
ini, kita akan menambahkan fungsi yang memungkinkan pengguna
memfilter hasil yang dikembalikan menggunakan permintaan yang
lebih spesifik.

Di samping ini adalah kode untuk aplikasi kita sebelumnya dengan


penambahan kemampuan penyaringan.

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
FLASK

FILTERING
Setelah kita memperbarui API dengan fungsi api_id, jalankan kode
seperti sebelumnya dan kunjungi URL di bawah untuk menguji
kemampuan pemfilteran baru:

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
FLASK

FILTERING
Masing-masing dari URL di atas akan mengembalikan data yang
berbeda, kecuali yang terakhir, yang akan mengembalikan data
kosong: [], karena tidak ada buku yang nilai idnya 3.
(Penghitungan array dalam pemrograman biasanya dimulai dari 0,
jadi id=3 akan menjadi permintaan untuk item keempat yang tidak
ada.)

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
FLASK

FILTERING
Penjelasan Kode :
Dalam kode ini, pertama-tama kita membuat fungsi baru, yang
disebut api_id, dengan sintaks @app.route yang memetakan
fungsi ke jalur /api/v1/resources/books. Artinya fungsi ini akan
berjalan ketika kita mengakses
http://127.0.0.1:5000/api/v1/resources/books. (Perhatikan bahwa
mengakses tautan ini tanpa memberikan ID akan memberikan
pesan kesalahan yang kita berikan dalam kode: Kesalahan: "Error:
No id field provided. Please specify an id.".)

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
FLASK

FILTERING
Di dalam fungsi ini, kita melakukan dua hal:

Pertama, periksa URL yang disediakan untuk parameter id dan pilih


buku yang cocok dengan id itu. Id harus diberikan seperti ini: ?id=0.
Data yang diteruskan melalui URL seperti ini (setelah ?) disebut
query parameter—kita telah melihatnya sebelumnya saat
membahas Chronicling America API. Query Parameter merupakan
fitur HTTP yang digunakan untuk memfilter jenis data tertentu.

Bagian kode ini menentukan apakah ada query parameter, seperti


?id=0, lalu menetapkan ID yang diberikan ke variabel.

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
FLASK

FILTERING
Kemudian bagian ini menelusuri katalog data buku, lalu
mencocokkan buku-buku yang memiliki ID yang diberikan, dan
menambahkannya ke daftar yang akan dikembalikan ke pengguna.

Terakhir, baris return jsonify(results) mengambil daftar hasil dan


menampilkannya di browser sebagai JSON.

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
02
Prinsip Desain API
Best Practice

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Prinsip Desain API

Sejauh ini, kita telah membuat API yang berfungsi dengan data uji yang kita sediakan langsung di aplikasi. Sebelum membangun lebih banyak
fungsionalitas ke dalam aplikasi kita, mari kita renungkan beberapa keputusan desain API yang telah kita buat sejauh ini. Dua aspek dari API
yang baik adalah kegunaan (usability) dan pemeliharaan (maintainability), dan saat kita membangun lebih banyak fungsionalitas ke dalam API,
akan lebih banyak hal yang harus kita pertimbangkan.

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Merancang Permintaan (Request)

Filosofi desain yang berlaku dari API modern disebut REST. Hal terpenting dalam REST terdapat pada empat metode yang ditentukan oleh
protokol HTTP: POST, GET, PUT, dan DELETE. Ini sesuai dengan empat tindakan tradisional yang dilakukan pada data dalam database:
CREATE, READ, UPDATE, dan DELETE.

Karena request HTTP sangat integral dengan penggunaan REST API, banyak prinsip desain berkisar pada bagaimana permintaan harus
diformat. Kita telah membuat satu request HTTP, yang mengembalikan semua buku yang disediakan dalam data di aplikasi kita. Untuk
memahami pertimbangan dalam memformat request ini, pertama-tama mari kita pertimbangkan contoh endpoint API yang lemah atau didesain
dengan buruk:

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Merancang Permintaan (Request)

Format request ini memiliki sejumlah masalah. Yang pertama adalah semantik—dalam REST API, kata kerja biasanya GET, POST, PUT, atau
DELETE, dan ditentukan oleh metode request, bukan dari URL request. Itu berarti bahwa kata "get" seharusnya tidak muncul dalam request,
karena "get" menyatakan bahwa kita menggunakan metode HTTP GET. Selain itu, koleksi data seperti buku atau pengguna harus
dilambangkan dengan kata benda jamak. Ini memperjelas saat API merujuk ke koleksi (books) atau data (book). Dengan menggabungkan
prinsip-prinsip ini, API kita akan terlihat seperti ini:

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Merancang Permintaan (Request)

Request di atas menggunakan bagian dari path (/10) untuk memberikan ID. Meskipun ini bukan pendekatan yang tidak biasa, ini agak tidak
fleksibel—dengan URL yang dibuat dengan cara ini, kita hanya dapat memfilter menurut satu parameter pada satu waktu. Query parameter
memungkinkan pemfilteran berdasarkan beberapa parameter dan lebih masuk akal saat memberikan data “opsional”, seperti format keluaran:

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Merancang Permintaan (Request)

Saat merancang bagaimana request ke API yang terstruktur, masuk akal juga untuk merencanakan penambahan di masa mendatang.
Meskipun versi API Anda saat ini hanya menyajikan informasi tentang satu jenis sumber daya—buku, misalnya—masuk akal untuk
merencanakan seolah-olah Anda mungkin menambahkan sumber daya lain atau fungsionalitas non-sumber daya ke API Anda di masa
mendatang:

Menambahkan segmen tambahan di path Anda seperti "resources" atau "entries" memberi Anda opsi untuk mengizinkan pengguna menelusuri
semua sumber daya yang tersedia, sehingga memudahkan Anda untuk nanti mendukung request seperti ini:

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Merancang Permintaan (Request)

Cara lain untuk merencanakan API Anda adalah dengan menambahkan nomor versi ke path. Artinya, jika Anda harus mendesain ulang API,
Anda dapat terus mendukung versi lama API di bawah nomor versi lama sambil merilis versi terbaru, misalnya, versi kedua (v2) dengan
fungsionalitas yang ditingkatkan atau berbeda. Dengan cara ini, aplikasi dan skrip yang dibuat menggunakan versi lama API Anda tidak akan
berhenti berfungsi setelah peningkatan versi Anda.

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Dokumentasi dan Contoh

Tanpa dokumentasi, bahkan API dengan desain terbaik pun tidak akan dapat digunakan. API Anda harus memiliki dokumentasi yang
menjelaskan sumber daya atau fungsionalitas yang tersedia melalui API Anda yang juga menyediakan contoh kerja nyata dari request URL
atau kode untuk API Anda. Anda harus memiliki bagian untuk setiap sumber daya yang menjelaskan parameter mana, seperti id atau judul,
yang diterimanya. Setiap bagian harus memiliki contoh dalam bentuk sampel request HTTP atau blok kode.

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
Dokumentasi dan Contoh

Praktik yang cukup umum dalam mendokumentasikan API adalah memberikan anotasi dalam kode Anda yang kemudian secara otomatis
disusun ke dalam dokumentasi menggunakan alat seperti Doxygen atau Sphinx. Alat-alat ini membuat dokumentasi dari komentar dalam
bentuk docstrings yang Anda buat pada definisi fungsi Anda. Meskipun dokumentasi semacam ini adalah ide yang bagus, Anda tidak boleh
menganggap pekerjaan Anda selesai jika Anda hanya mendokumentasikan API Anda ke level ini. Sebagai gantinya, coba bayangkan diri Anda
sebagai pengguna potensial API Anda dan berikan contoh yang berfungsi. Di dunia yang ideal, Anda akan memiliki tiga jenis dokumentasi
untuk API Anda: referensi yang merinci setiap route dan perilakunya, panduan yang menjelaskan referensi dalam bentuk prosa, dan setidaknya
satu atau dua tutorial yang menjelaskan setiap langkah secara detail.
Beberapa contoh dokumentasi API :
• http://api.repo.nypl.org/
• https://www.mediawiki.org/wiki/API:Main_page
• https://datahelpdesk.worldbank.org/knowledgebase/articles/889392-api-documentation
• https://developer.nytimes.com/
• https://pro.europeana.eu/resources/apis

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
03
Latihan
Tugas & Latihan

PROGRAM STUDI INFORMATIKA


UNIVERSITAS GUNADARMA
TERIMA
KASIH

Tim Penyusun:
1. Albertus Bayu Aji Priyono
PROGRAM STUDI INFORMATIKA
UNIVERSITAS GUNADARMA

Anda mungkin juga menyukai