Mengenal aplikasi postman udah menguji API yang kita buat selama tutorial ini dan basic dari Resource
Mempersiapkan database dan model dari API dengan flask
Menampikan data-data dari database ke API dengan flask
Apa itu bluperint pada flask? dengan ini kita bisa membuat proyek jadi lebih rapi dan terstruktur
Menerima request dari user dengan reqparse, bagaimana cara mengirim data dari postman ke API yang kita buat
Membuat format data json yang kita tampikan sebagai respon dengan mudah, dengan menggunakan marshal dan marshal with di flask
pada kelas kali ini kita akan membuat rest api menggunakan python. disini kita akan menggunakan framework flask. selain itu, kita juga akan menggunakan library sqlalchemy sebagai ORM dan marshmallow sebagai object serializationnya. kita akan menggunakan database sqlite, biar sederhana. namun kalau ingin dikembangkan ke mysql atau postgres bisa juga kog.
untuk mengikuti kelas kali ini, pastikan komputer sudah terinstall python 3.7 ke atas dan pip python package manager versi 3, pip3. jangan lupa install juga postman atau insomnia sebagai gui untuk mencoba rest api
langkah pertama, kita install dulu dependensi yang akan dipakai pada rest api ini. yaitu pip3 install flask, flask sqlalchemy, flask marshmallow, dan sqlalchemy marshmallow.
Tutorial ini akan memperkenalkan Anda kepada API web dan mengajari Anda cara menggunakan perpustakaan Python untuk mengambil dan memperbarui informasi di API web. Anda juga akan belajar bagaimana berinteraksi dengan Twitter API sebagai contoh yang bekerja.
Pengantar API Web
API (Application Programming Interface) adalah kerangka kerja untuk membangun layanan HTTP yang dapat dikonsumsi oleh berbagai klien. API Web menggunakan protokol HTTP untuk menangani permintaan antara klien dan server web.
Beberapa API yang paling umum yang memungkinkan pengembang untuk mengintegrasikan dan menggunakan infrastruktur mereka termasuk:
- API Google
- API Twitter
- API Amazon
- API Facebook
Salah satu alasan paling penting untuk menggunakan API dibandingkan dengan sumber data statis lainnya adalah karena ini waktu nyata. Sebagai contoh, API Twitter yang akan kita gunakan akan mengambil data waktu-nyata dari jejaring sosial.
Keuntungan lainnya adalah bahwa data terus berubah, jadi jika Anda mengunduhnya secara berkala, itu akan memakan waktu.
Menggunakan Perpustakaan Requests
Untuk menggunakan API, Anda harus menginstal perpustakaan requests Python. Requests adalah perpustakaan HTTP di Python yang memungkinkan Anda mengirim permintaan HTTP dengan Python.
Menginstal Requests
Di terminal Anda, ketik:
1pip install requests
Untuk memeriksa apakah penginstalan telah berhasil, berikan perintah berikut di interpreter Python Anda atau terminal:
1import requests
Jika tidak ada kesalahan, instalasinya berhasil.
Bagaimana Mendapatkan Informasi dari Web API
Metode GET digunakan untuk mendapatkan informasi dari server web. Mari kita lihat cara membuat permintaan GET untuk mendapatkan timeline umum GitHub.
Kita menggunakan variabel 112 untuk menyimpan respons dari permintaan kita.
1import requests 2req = requests.get('//github.com/timeline.json')
Sekarang setelah kita membuat permintaan ke timeline GitHub, mari kita mendapatkan encoding dan konten yang terkandung dalam respons.
1import requests 2req = requests.get('//github.com/timeline.json') pip install requests 2pip install requests 3pip install requests 4pip install requests 5
1import requests 2pip install requests 9pip install requests 211pip install requests 413
Requests memiliki dekode JSON bawaan yang dapat Anda gunakan untuk mendapatkan respons permintaan dalam format JSON.
1import requests 217pip install requests 2req = requests.get('//github.com/timeline.json') pip install requests 4import requests 1import requests 2import requests 3
Cara Membuat dan Memperbarui Informasi di Web API
Metode POST dan PUT keduanya digunakan untuk membuat dan memperbarui data. Meskipun ada kesamaan, penting untuk dicatat bahwa menggunakan permintaan POST untuk memperbarui data akan menghasilkan dua entri di penyimpanan data jika dua item yang identik dikirimkan.
Membuat data (permintaan POST):
1import requests 5
Memperbarui data (permintaan PUT):
1import requests 7
Bekerja dengan API REST Twitter
Di bagian ini, Anda akan belajar cara mendapatkan kredensial API Twitter, mengotentikasi ke API Twitter, dan berinteraksi dengan API Twitter menggunakan Python.
Anda juga akan dapat mengambil informasi dari akun Twitter publik, seperti tweet, pengikut, dll.
Otentikasi dengan Twitter
Kita perlu mengotentikasi dengan API Twitter sebelum kita dapat berinteraksi dengannya. Untuk melakukan ini, ikuti langkah-langkah berikut:
- Buka halaman Aplikasi Twitter.
- Klik pada Create New App (Anda harus login ke Twitter untuk mengakses halaman ini). Jika Anda tidak memiliki akun Twitter, buat sebuah akun.
3. Buat nama dan deskripsi untuk aplikasi Anda dan placeholder situs web.
4. Cari Tab Keys and Access Tokens dan buat token akses Anda.
5. Anda perlu memperhatikan secret 113 dan 114 karena Anda akan membutuhkannya untuk proses otentikasi.
6. Anda juga perlu memperhatikan 115 and 116.
Ada beberapa perpustakaan yang bisa kita gunakan untuk mengakses API Twitter, tetapi kita akan menggunakan perpustakaan python-twitter dalam tutorial ini.
Menginstal python-twitter
Untuk menginstal python-twitter, gunakan:
1import requests 9
API Twitter diekspos melalui kelas 117, jadi mari membuat kelas dengan meneruskan token dan kunci secret kita:
111213pip install requests 215pip install requests 417import requests 219
Ganti kredensial Anda di atas dan pastikan mereka diapit tanda kutip, yaitu consumer_key='xxxxxxxxxx', ...)
Meminta pada Twitter
Ada banyak metode berinteraksi dengan API Twitter, termasuk:
1import requests 12import requests 3pip install requests 2import requests 5pip install requests 4import requests 7import requests 2import requests 920212223242526272829
Untuk mendapatkan data dari Twitter, kita akan membuat panggilan API dengan bantuan objek 118 yang kita buat di atas.
Kita akan melakukan hal berikut:
- Buat variabel 119 dan tetapkan sama dengan handle Twitter yang valid (nama pengguna).
Panggil metode 120 pada objek 118 dan berikan argumen berikut.
- handle Twitter yang valid
- jumlah tweet yang ingin Anda ambil (122)
- flag untuk mengecualikan retweets (ini dilakukan menggunakan 123)
Mari dapatkan tweet terbaru dari timeline Envato Tuts+ Code, tidak termasuk retweet.
1req = requests.get('//github.com/timeline.json') 12req = requests.get('//github.com/timeline.json') 3pip install requests 2req = requests.get('//github.com/timeline.json') 5pip install requests 4import requests 2req = requests.get('//github.com/timeline.json') 82010221224142616
Metode 120 akan mengembalikan daftar dari 30 tweet terbaru, jadi kita mengulang melalui daftarnya dan mencetak informasi yang paling penting (konten) dari setiap tweet.
1182import requests 0pip install requests 2import requests 2pip install requests 4import requests 4import requests 2import requests 620import requests 822pip install requests 0024pip install requests 0226pip install requests 0428pip install requests 06pip install requests 07pip install requests 08pip install requests 09pip install requests 10pip install requests 11pip install requests 12pip install requests 13pip install requests 14pip install requests 15pip install requests 16pip install requests 17pip install requests 18pip install requests 19pip install requests 20pip install requests 21pip install requests 22pip install requests 23pip install requests 24pip install requests 25pip install requests 26pip install requests 27pip install requests 28pip install requests 29pip install requests 30pip install requests 31pip install requests 32pip install requests 33pip install requests 34pip install requests 35pip install requests 36pip install requests 37pip install requests 38pip install requests 39pip install requests 40pip install requests 41pip install requests 42pip install requests 43pip install requests 44pip install requests 45pip install requests 46
Untuk mengambil follower, kita menggunakan metode 125.
1req = requests.get('//github.com/timeline.json') 12pip install requests 50pip install requests 2pip install requests 52pip install requests 4pip install requests 54import requests 220req = requests.get('//github.com/timeline.json') 822pip install requests 5924pip install requests 6126pip install requests 63
Keluaran
1pip install requests 652pip install requests 67pip install requests 2pip install requests 69pip install requests 4pip install requests 71import requests 2pip install requests 7320pip install requests 7522pip install requests 7724pip install requests 7926pip install requests 8128pip install requests 83pip install requests 07pip install requests 85pip install requests 09pip install requests 87pip install requests 11pip install requests 89pip install requests 13pip install requests 91pip install requests 15pip install requests 93pip install requests 17pip install requests 95pip install requests 19pip install requests 97pip install requests 21pip install requests 99pip install requests 23101pip install requests 25103pip install requests 27105pip install requests 29107pip install requests 31109pip install requests 33111