1. Code
  2. Python

Cara Menggunakan Web API Restful dengan Python

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.
Scroll to top

Indonesian (Bahasa Indonesia) translation by âš¡ Rova Rindrata (you can also view the original English article)

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:

  1. API Google
  2. API Twitter
  3. API Amazon
  4. 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:

1
pip install requests

Untuk memeriksa apakah penginstalan telah berhasil, berikan perintah berikut di interpreter Python Anda atau terminal:

1
import 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 req untuk menyimpan respons dari permintaan kita.

1
import requests
2
req = requests.get('https://github.com/timeline.json')

Sekarang setelah kita membuat permintaan ke timeline GitHub, mari kita mendapatkan encoding dan konten yang terkandung dalam respons.

1
import requests
2
req = requests.get('https://github.com/timeline.json')
3
req.text
4
u'{"message":"Hello there, wayfaring stranger. If you\u2019re reading this then you probably didn\u2019t see our blog post a couple of years back announcing that this API would go away: https://git.io/17AROg Fear not, you should be able to get what you need from the shiny new Events API instead.","documentation_url":"https://developer.github.com/v3/activity/events/#list-public-events"}
1
import requests
2
req = requests.get('https://github.com/timeline.json')
3
req.encoding
4
'utf-8'

Requests memiliki dekode JSON bawaan yang dapat Anda gunakan untuk mendapatkan respons permintaan dalam format JSON.

1
import requests
2
import json
3
req = requests.get('https://github.com/timeline.json')
4
req.json()
5
{u'documentation_url': u'https://developer.github.com/v3/activity/events/#list-public-events', u'message': u'Hello there, wayfaring stranger. If you\u2019re reading this then you probably didn\u2019t see our blog post a couple of years back announcing that this API would go away: http://git.io/17AROg Fear not, you should be able to get what you need from the shiny new Events API instead.'}

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):

1
r = requests.post('http://127.0.0.1/api/v1/add_item', data = {'task':'Shopping'})

Memperbarui data (permintaan PUT):

1
r = requests.put('http://127.0.0.1/api/v1/add_item', data = {'task':'Shopping at 2'})

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:

  1. Buka halaman Aplikasi Twitter.
  2. Klik pada Create New App (Anda harus login ke Twitter untuk mengakses halaman ini). Jika Anda tidak memiliki akun Twitter, buat sebuah akun.
Twitter App PageTwitter App PageTwitter App Page

3. Buat nama dan deskripsi untuk aplikasi Anda dan placeholder situs web.

Creating a Twitter ApplicationCreating a Twitter ApplicationCreating a Twitter Application

4. Cari Tab Keys and Access Tokens dan buat token akses Anda.

Twitter Access TokensTwitter Access TokensTwitter Access Tokens

5. Anda perlu memperhatikan secret token Access dan Access Token karena Anda akan membutuhkannya untuk proses otentikasi.

6. Anda juga perlu memperhatikan Consumer Key and Consumer Secret.

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:

1
$ pip install python-twitter

API Twitter diekspos melalui kelas twitter.Api, jadi mari membuat kelas dengan meneruskan token dan kunci secret kita:

1
import twitter
2
api = twitter.Api(consumer_key=[consumer key],
3
                  consumer_secret=[consumer secret],
4
                  access_token_key=[access token],
5
                  access_token_secret=[access token secret])

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:

1
>>> api.PostUpdates(status)
2
>>> api.PostDirectMessage(user, text)
3
>>> api.GetUser(user)
4
>>> api.GetReplies()
5
>>> api.GetUserTimeline(user)
6
>>> api.GetHomeTimeline()
7
>>> api.GetStatus(status_id)
8
>>> api.DestroyStatus(status_id)
9
>>> api.GetFriends(user)
10
>>> api.GetFollowers()

Untuk mendapatkan data dari Twitter, kita akan membuat panggilan API dengan bantuan objek api yang kita buat di atas.

Kita akan melakukan hal berikut:

  1. Buat variabel user dan tetapkan sama dengan handle Twitter yang valid (nama pengguna).
  2. Panggil metode GetUserTimeline() pada objek api dan berikan argumen berikut.

  • handle Twitter yang valid
  • jumlah tweet yang ingin Anda ambil (count)
  • flag untuk mengecualikan retweets (ini dilakukan menggunakan include_rts = false)

Mari dapatkan tweet terbaru dari timeline Envato Tuts+ Code, tidak termasuk retweet.

1
import twitter
2
api = twitter.Api(consumer_key="xxxxxxxxxxxx", consumer_secret="xxxxxxxxxxxxxx",
3
                  access_token_key="314746354-xxxxx", access_token_secret="xxxxxx")
4
5
user = "@TutsPlusCode"
6
statuses = api.GetUserTimeline(
7
    screen_name=user, count=30, include_rts=False)
8
for s in statuses:
9
    print s.text

Metode GetUserTimeline() akan mengembalikan daftar dari 30 tweet terbaru, jadi kita mengulang melalui daftarnya dan mencetak informasi yang paling penting (konten) dari setiap tweet.

1
Here are 6 things that make Yarn the best #JavaScript package manager around. https://t.co/N4vzIJmSJi

2
Find out more about bar charts with part 3 of this series on creating interactive charts using Plotly.js. https://t.co/lyKMxSsicJ
3
See what's new with Git support in Xcode 9. https://t.co/7gGu0PV1rV

4
Here's how to create digital signatures with Swift. https://t.co/kCYYjShJkW
5
In this quick tip, discover how to use Atom as a Git GUI. https://t.co/8rfQyo42xM
6
Take a look at these 12 useful WordPress plugins for page layouts. https://t.co/T57QUjEpu5
7
Learn more about line charts in part 2 of our series on creating interactive charts using Plotly.js. https://t.co/nx51wOzSkF
8
Grab some great freebies with our special 10th birthday offer, https://t.co/AcIGTiC2re
9
In this latest in our series on coding a real-time app with NativeScript: Push notifications. https://t.co/qESFVGVF4L
10
Get started with end-to-end testing in Angular using Protractor. https://t.co/TWhQZe7ihE
11
Learn how to build a to-do API with Node, Express, and MongoDB. https://t.co/R4DvRYiM90
12
What is the Android activity lifecyle? https://t.co/VUHsucaC1X
13
Learn all about object-oriented programming with JavaScript. https://t.co/bI7ypANOx3
14
Have some fun with functions in this latest in our series on Kotlin. https://t.co/r2f2TzA5lM
15
Here's how to make your JavaScript code robust with Flow. https://t.co/rcdjybKL8L

16
Build your own to-do API with Node and Restify. https://t.co/gQeTSZ6C5k

17
Here's how to put your view controllers on a diet with MVVM. https://t.co/oJqNungt1O
18
Learn how to submit your new iOS app to the App Store. https://t.co/JQwsKovcaI
19
This guide is the perfect place to build your skills and start writing plugins in Go. https://t.co/68X5lLSNHp
20
Take a look at how to test components in Angular using Jasmine. https://t.co/V5OTNZgDkR
21
Learn to build your first #WordPress plugin in this awesome new course. https://t.co/695C6U6D7V

22
In this latest in our Android architecture components series: LiveData. https://t.co/gleDFbqeAi
23
Take a deep dive into the Go type system. https://t.co/AUM7ZyanRO
24
Take a look at serverless logic with realm functions. https://t.co/aYhfeMgAZc
25
Part 4 of React crash course for beginners is out! https://t.co/aG5NEa6yG9
26
Learn about social login and Firebase in this new addition to the series. https://t.co/oL5z0krQD3
27
Creating a blogging app using React part 6 is out! Tags https://t.co/OzUaPQEX8E
28
What is GenServer and why should you care? https://t.co/EmQeTBggUK
29
Check out part 3 in React crash course for beginners series. https://t.co/dflLCUqncO
30
Learn about packages and basic functions in this addition to our Kotlin from scratch series. https://t.co/JAo2ckSgZS

Untuk mengambil follower, kita menggunakan metode GetFriends().

1
import twitter
2
api = twitter.Api(consumer_key="ftFL8G4yzQXUVzbUCdxGwKSjJ", consumer_secret="KxGwBe6GlgSYyC7PioIVuZ5tFAsZs7q1rseEYCOnTDIjulT0mZ",
3
                  access_token_key="314746354-Ucq36TRDnfGAxpOVtnK1qZxMfRKzFHFhyRqzNpTx",
4
                  access_token_secret="7wZ1qHS0qycy0aNjoMDpKhcfzuLm6uAbhB2LilxZzST8w")
5
6
user = "@TutsPlusCode"
7
friends = api.GetFriends(screen_name=user)
8
for friend in friends:
9
    print friend.name

Keluaran

1
Derek Herman
2
Cyan Ta'eed

3
Dropbox

4
Stoyan Stefanov

5
The JavaScript Ninja

6
Dan Wellman

7
Brenley Dueck

8
Dave Ward

9
Packt

10
Karl Swedberg

11
Envato Tuts+ Web

12
Dev_Tips

13
Vahid Ta'eed
14
Jarel Remick
15
Envato Dev. Team
16
🖥 Drew Douglass 📈
17
Cameron Moll
18
SitePoint
19
John Resig
20
Skellie
21
Chris Coyier
22
Envato Tuts+
23
Envato Tuts+ Design
24
Collis
situs pengembang Twitter.>. di marketplace, dan jangan ragu untuk mengajukan pertanyaan dan memberikan umpan balik Anda yang berharga menggunakan umpan di bawah ini.w.