Anda di halaman 1dari 29

 

Lab - Mengintegrasikan sebuah SISA API di sebuah Pyth
on Aplikasi
Tujuan
Bagian 1: Peluncuran tersebut DEVASC VM

Bagian 2: Menunjukkan yang Ma
pQuest Arah Aplikasi Bagian 3: D
apatkan sebuah MapQuest API K
ey
Bagian 4: Membangun dengan Basic MapQuest Direction Aplikasi

Bagian 5: Tingkatkan yang MapQuest Arah Aplik
asi dengan Lebih Fitur Bagian 6: Uji Kendali
Aplikasi Fungsi
Latar Belakang / Skenario
Di lab ini, Anda akan membuat aplikasi dalam Visual Studio Code (VS Code) yang
mengambil data JSON dari MapQuest Directions API, mem-parsing data, dan
memformatnya untuk output ke pengguna. Anda akan menggunakan GET
Route permintaan dari para MapQuest Arah
API. Tinjau dokumentasi GET Route Directions API di sini:
https://developer.mapquest.com/documentation/directions-api/route/get/
Catatan : Jika yang link di atas tidak lagi bekerja, mencari untuk “MapQuest API Dokumentasi”.
 
Sumber Daya yang Diperlukan
 1 PC dengan sistem operasi pilihan Anda
 Kotak Virtual atau VMWare
 Mesin Virtual DEVASC

 
instruksi

Bagian 1: Peluncuran tersebut DEVASC VM
Jika Anda belum menyelesaikan Lab - Instal Lingkungan Lab Mesin Virtual , lakukan
sekarang. Jika Anda telah sudah selesai lab itu, meluncurkan yang DEVASC VM sekarang.
 
Bagian 2: Menunjukkan yang Arah MapQuest Aplikasi
Anda instruktur dapat menunjukkan yang MapQuest Arah Aplikasi
dan menunjukkan Anda yang skrip yang digunakan untuk membuat itu. Namun,
Anda akan membuat skrip ini selangkah demi selangkah di lab ini.
The aplikasi meminta untuk sebuah awal lokasi
dan tujuan. Ini kemudian meminta JSON Data dari para MapQuest Arah API, mem-
parsing itu, dan menampilkan berguna informasi.
>>>
Lokasi Awal : Washington
Tujuan: Baltimore
URL:
https://www.mapquestapi.com/directions/v2/route?key= your_api_key 
&from=Washington&to=Ba ltimore
API Status: 0 = A sukses r

ute panggilan. Rute dari W

ashington ke Baltimore
www.netacad.comPage 1 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
Durasi Perjalanan :  00:49:19
Kilometer: 61,32
Bahan Bakar yang Digunakan (Ltr): 6,24
===============================================
Mulai keluar akan utara pada 6 St / US-50 E / US-
1 N menuju Pennsylvania Ave / US-1 Alt N. (1,28 km)
Belok kanan ke New York Ave / US-
50 E. Lanjutkan untuk mengikuti US-50 E (Crossing ke Maryland). (
7,51 km)
Ambil jalan keluar Balt-Wash Parkway di sebelah
kiri menuju Baltimore. (0,88 km) Gabung ke MD-
295 N. (50,38 km)
Belok kanan ke W Pratt St. (0,86 km)
Belok kiri ke S Calvert St
/MD-2. (0.43 km) Selamat
Datang ke BALTIMORE, MD. (
0,00 km)
===============================================
 
Lokasi Awal : berhenti
>>>

Catatan : Untuk melihat yang JSON untuk di atas output, Anda dapat menyalin yang URL


di tab
browser. Namun, Anda akan perlu untuk mengganti your_api_key dengan yang MapQuest 
API key Anda mendapatkan dalam Bagian 3.
 
Bagian 3: Dapatkan sebuah MapQuest API Key
Sebelum membangun yang aplikasi, Anda perlu untuk menyelesaikan berikut langkah-langkah untuk
mendapatkan sebuah MapQuest API key.
a. Buka : https://developer.mapquest.com/ .
b. Klik Sign Up di dalam atas halaman.
c.Isi keluar yang bentuk
untuk membuat sebuah baru akun. Untuk Perusahaan , masukkan Cisco Networking Academ
y Student .
d. Setelah mengklik Daftar Saya , Anda akan diarahkan ke halaman Kelola Kunci . Jika
Anda dialihkan ke tempat lain, klik Manage Keys dari daftar dari pilihan
di dalam kiri.
e. Klik Setujui Semua Kunci .
f. Perluas Aplikasi Saya .
g. Salin Anda Consumer Key untuk sebuah teks file yang untuk masa depan digunakan. Ini akan
menjadi yang utama Anda gunakan untuk sisa dari ini lab.

Catatan : MapQuest dapat mengubah yang proses untuk
memperoleh sebuah kunci. Jika langkah - langkah di atas tidak lagi valid, cari di
internet untuk "langkah - langkah untuk menghasilkan kunci api mapquest ".
 
Bagian 4: Membangun Aplikasi Arah MapQuest Dasar
Di Bagian ini, Anda akan membuat skrip Python untuk mengirim permintaan URL ke API
arah MapQuest. Anda kemudian akan menguji panggilan API Anda. Sepanjang sisa lab ini,
Anda akan membuat skrip Anda di bagian-bagian, menyimpan file dengan nama baru
setiap kali. Ini akan membantu dengan belajar potongan-potongan aplikasi serta
memberikan Anda serangkaian dari script yang Anda dapat kembali ke jika Anda
mengalami masalah di dalam versi saat ini dari aplikasi Anda.
 
Langkah 1: Buat sebuah New Berkas di VS Kode.
Anda dapat menggunakan alat apa pun yang ingin Anda masukkan dalam perintah Python
dan menjalankan kode Python. Namun, lab ini akan mendemonstrasikan pembuatan
aplikasi dalam VS Code.
a. Terbuka VS Kode . Ada adalah sebuah shortcut pada para Desktop , untuk Anda kenyamanan.
b. Pilih File > Buka Folder...
c.Arahkan ke direktori ~/labs/devnet-src/mapquest dan klik OK . Direktori ini
masih kosong dan di mana Anda akan menyimpan setiap iterasi dari aplikasi Anda.

www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
d. Pilih Berkas > Berkas Baru .
e. Pilih Berkas > Simpan sebagai ... dan nama yang berkas mapquest_parse-
json_1.py dan klik Simpan .

 
Langkah 2: Mengimpor modul untuk aplikasi.
Untuk memulai skrip penguraian data JSON, Anda perlu mengimpor dua modul dari
pustaka Python: request dan urllib.parse . The permintaan modul menyediakan
fungsi untuk mengambil data JSON dari URL. The urllib.parse modul menyediakan
berbagai fungsi yang akan memungkinkan Anda untuk mengurai dan
memanipulasi JSON data yang Anda terima dari sebuah permintaan untuk sebuah URL.
a. Tambahkan yang berikut impor pernyataan di dalam atas dari naskah Anda.

i
m
p
o
r

u
r
l
l
i
b
.
p
a
r
s
e
 
p
e
r
m
i
n
t
a
a
n
 
i
m
p
o
r
b. Pilih Terminal > New Terminal untuk membuka Terminal di dalam VS Kode.
c.Simpan dan jalankan skrip Anda . Anda seharusnya tidak
mendapatkan kesalahan. Anda harus menyimpan dan
menjalankan Anda skrip sering tes kode fungsi.

devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_1.py
devasc@labvm:~/labs/devnet-src/mapquest$
 
Langkah 3: Membangun URL untuk yang permintaan untuk para MapQuest arah AP
I.
Langkah pertama dalam membuat permintaan API Anda adalah membuat URL yang
akan digunakan aplikasi Anda untuk
melakukan panggilan. Awalnya, para URL akan menjadi kombinasi dari yang variabel
berikut:
 main_api - URL utama yang Anda akses
 orig - yang parameter untuk menentukan Anda titik dari asal
 dest - yang parameter untuk menentukan Anda tujuan
 key - kunci API MapQuest yang Anda ambil dari situs web pengembang

a. Buat variabel untuk
membangun dengan URL yang akan dikirim di dalam permintaan. Dalam kode berikut , gant
i

your_api_key dengan para konsumen Key Anda disalin dari Anda MapQuest pengemba
ng akun.
main_api = "https://www.mapquestapi.com/di
rections/v2/route?" asal = "Washington, DC
"
d
e
s
t
=
"
B
a
l
t
i
m
o
r
e
,
M
d

k
e


"
y
o
u
r
_
a
p
i
_
k
e
y
"
b. Gabungkan empat variabel main_api , orig , dest , dan key untuk memformat URL
yang diminta. Gunakan metode urlencode untuk memformat nilai alamat dengan
benar. Fungsi ini membangun parameter bagian dari URL dan bertobat mungkin karakter
khusus dalam nilai alamat menjadi karakter yang dapat diterima (misalnya
ruang menjadi “+” dan sebuah koma dalam “% 2C”).

url = main_api + urllib.parse. urlencode({"kunci":kunci, "dari":asal, "ke"
:tujuan})

c.Buat variabel untuk menampung balasan dari URL yang diminta dan mencetak data JSON
yang dikembalikan. The json_data variabel memegang representasi Kamus Python
dari json balasan dari mendapatkan metode
dari permintaan modul. The requests.get akan membuat panggilan API ke API
MapQuest. The cetak pernyataan akan digunakan sementara untuk memeriksa data
yang dikembalikan. Anda akan mengganti pernyataan cetak ini
dengan opsi tampilan yang lebih canggih nanti di lab.

json_data =
request.get(url
).json() print(
json_data)
d. Anda akhir kode harus terlihat seperti ini, tetapi dengan berbeda nilai untuk para key.
i
m
p
o
r

u
r
l
l
i
b
.
p
a
r
s
e
 
p
e
r
m
i
n
t
a
a
n
 
i
m
p
o
r
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
main_api = "https://www.mapquestapi.com/di
rections/v2/route?" asal = "Washington, DC
"
tujuan = "Baltimore, Md"
key = " fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ " #Ganti dengan kunci MapQuest An
da

url = main_api + urllib.parse.urlencode({"key":key,

"from":orig,

"to":dest}) json_data = request.get (url).json()
cetak(json_data)
 
Langkah 4: Uji yang URL permintaan.
a. Simpan dan jalankan skrip mapquest_parse-json_1.py Anda dan verifikasi bahwa itu berfungsi.
b. Pecahkan masalah kode Anda, jika perlu. Meskipun output Anda mungkin sedikit
berbeda, Anda harus mendapatkan JSON respon yang mirip
dengan yang berikut. Perhatikan bahwa yang keluaran adalah sebuah kamus
dengan dua pasangan kunci / nilai. The nilai kunci rute adalah kamus lain yang meliputi
kamus tambahan dan daftar. Kunci Info meliputi para statusCode pasangan kunci /
nilai yang Anda akan menggunakan nanti di dalam laboratorium.

devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_1.py
{'route': { 'hasTollRoad': Salah, 'hasBridge': Benar, 'boundingBox': {'lr'
: {'lng': -
76.612137, 'lat': 38.892063}, 'ul': {'lng': -77.019913, 'lat': 39.290443}}
,
'jarak': 38.089, 'hasTimedRestriction': Salah, 'hasTunnel':
Salah, 'hasHighway': Benar, 'computedWaypoints': [],
'routeError': {'errorCode': -400, 'message':
''} , 'formattedTime': '00:49:29', ' sessionId' : '5eadfc17-00ee-
5f21-02b4-1a24-0647e6e69816', 'hasAccessRestriction': False,
'realTime': 2915, 'hasSeasonalClosure': False, '
hasCountryCross': False, 'fuelUsed': 1,65, 'legs':
[{'hasTollRoad': False, 'hasBridge': True, 'destNarrative':
'Lanjutkan ke BALTIMORE, MD.', 'distance':
38.089, 'hasTimedRestriction ': False, 'hasTunnel': False,
'hasHighway': True, 'index': 0, 'formattedTime': '00:49:29',
'origIndex': -1, 'hasAccessRestriction':
False, 'hasSeasonalClosure' : Salah, 'hasCountryCross': Salah,
'roadGradeStrategy': [[]], 'destIndex': 3, 'time': 2969,
'hasUnpaved': False, 'origNarrative': '', 'manuver': [{' jarak':
0,792, 'jalanan': ['6th St', 'US-50 E', 'US-1 N'], 'narrative':
'Mulai ke utara di 6th St/US-50 E/US- 1 N menuju Pennsylvania
Ave/US-1 Alt N.', 'turnType': 0, 'sta rtPoint': {'lng':
-77.019913, 'lat': 38.892063}, 'index':
0, 'formattedTime': '00:02:06', 'directionName': 'North', 'maneuv
erNotes': [] , 'linkIds': [], 'signs': [{'extraText': '', 'text':
'50', 'type': 2, 'url': 'http://icons.mqcdn.com/ icon/rs2.png?
n=50&d=EAST', 'direction': 8}, {'extraText': '', 'text': '1', 'ty
pe': 2, 'url': 'http:/ /icons.mqcdn.com/icons/rs2.png?
n=1&d=UTARA',
<<<<< >>>>>
keluaran dihilangkan
<<<<< >>>>>
'geocodeQuality': 'CITY', 'adminArea1Type': 'Country',
'adminArea3Type': 'State', 'latLng': {'lng': -
76.61233, 'lat': 39.29044}}], 'time': 2969 , 'hasUnpaved': Salah,
'locationSequence': [0, 1], 'hasFerry': False}, 'info' : { 'statuscode': 0 
, 'copyright':
{'imageAltText': '© 2019 MapQuest, Inc.',
'imageUrl': 'http://api.mqcdn.com/res/mqlogo.gif', 'text': '© 201
9 MapQuest, Inc.'}, 'pesan': []} }
devasc@labvm:~/labs/devnet-src/mapquest$

c.Mengubah orig dan dest variabel. Jalankan kembali skrip untuk mendapatkan hasil yang


berbeda. Untuk memastikan hasil yang Anda inginkan, sebaiknya sertakan kota dan
negara bagian untuk kota-kota di AS. Saat merujuk ke kota di negara lain , Anda
biasanya dapat menggunakan nama bahasa Inggris untuk kota dan negara atau nama
asli. Untuk contoh:

ori
g = 
" R
oma
, I
tal
ia 
" d
est 
= "
Fra
sca
ti, 
Ita
lia
"

atau
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
orig 
= " 
Roma
, It
alia 
" de
st = 
"Fra
scat
i, I
tali
a"
 
Langkah 5: Cetak yang URL dan memeriksa statusnya dari yang JSON permintaan.
Sekarang bahwa Anda tahu yang JSON permintaan yang bekerja, Anda
dapat menambahkan beberapa lebih fungsionalitas untuk para aplikasi.
a. Simpan skrip Anda sebagai mapquest_parse-json_2.py .
b. Hapus yang cetak (json_data) pernyataan seperti Anda tidak
lagi perlu untuk menguji bahwa yang permintaan benar diformat.
c.Tambahkan satu pernyataan di bawah ini, yang akan melakukan yang berikut:
o Cetak URL dibangun sehingga bahwa para pengguna dapat melihat persis permintaan yang
dibuat oleh aplikasi.
o Mengurai yang data JSON untuk mendapatkan yang statusCode nilai.
o Memulai jika loop yang memeriksa panggilan yang sukses, yang ditandai
dengan nilai kembali dari 0. Tambahkan pernyataan print untuk
menampilkan statusCode nilai dan maknanya. The \ n menambahkan baris
kosong di bawah output.

Nanti di lab ini , Anda akan menambahkan pernyataan elif dan else untuk nilai kode status
yang berbeda .
print("URL: " + (url))
 
json_data =
request.get(url).json() j
son_status = json_data["i
nfo"]["statuscode"]
 
jika json_status == 0:
mencetak ( "API Status: " + str
(json_status) + " = A sukses rute . panggilan \ n")
 
Langkah 6: Uji status dan perintah cetak URL .
a. The contoh disini menggunakan berikut parameter.

orig 
= "W
ashi
ngto
n, D
C" d
est 
= "B
alti
more
, Md
"
b. Simpan dan jalankan skrip mapquest_parse-json_2.py Anda dan verifikasi
bahwa itu berfungsi. Pecahkan masalah kode Anda , jika perlu. Anda harus
mendapatkan output yang mirip dengan berikut ini. Perhatikan kunci Anda
disematkan dalam permintaan URL .

devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapqu
est_parse-json_2.py
URL:
https://www.mapquestapi.com/directions/v2/route?key= 
fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ &f rom=Washington%2C+DC&to=Baltimore
%2C+Md
API Status: 0 = A sukses rute panggilan.
 
devasc@labvm:~/labs/devnet-src/mapquest$
 
Langkah 7: Tambahkan input Pengguna untuk lokasi awal dan tujuan.
Anda telah digunakan statis nilai
untuk para lokasi variabel. Namun, yang aplikasi mengharuskan bahwa para pengguna masu
kan tersebut. Lengkapi dengan langkah-langkah berikut untuk memperbarui Anda aplikasi:
a. Simpan skrip Anda sebagai mapquest_parse-json_3.py .
b. Hapus yang saat ini orig dan dest variabel.
c.Menulis ulang orig dan dest berada dalam loop sementara di mana ia meminta masukan
pengguna untuk lokasi awal dan tujuan. Perulangan while memungkinkan pengguna
untuk terus membuat permintaan untuk arah yang berbeda. Tambahkan kode berikut,
yang disorot di bawah, setelah parameter kunci. Pastikan semua kode yang tersisa
benar menjorok dalam yang sementara lingkaran.

www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
i
m
p
o
r

u
r
l
l
i
b
.
p
a
r
s
e
 
p
e
r
m
i
n
t
a
a
n
 
i
m
p
o
r
 
main_api = "https://www.mapquestapi.com/di
rections/v2/route?" kunci = "fZadaFOY22VIE
EemZcBFfxl5vjSXIPpZ"
 

sementara Benar:
   orig = input(" Lokasi Awal : ")
   tujuan = input("Tujuan: ")
url = main_api + urllib.parse.urlencode({"key": key, "from":or
ig, "to":dest}) print("URL: " + (url))
json_data =
request.get(url).json() 
json_status =
json_data["info"]
["statuscode"] jika json
_status == 0:
mencetak ( "API Status: " + str (json_status) + " = A sukses rute .
panggilan \ n")
 
Langkah 8: Uji fungsionalitas input pengguna .
Jalankan skrip mapquest_parse-json_3.py Anda dan verifikasi bahwa itu
berfungsi. Pecahkan masalah kode Anda, jika perlu. Anda harus mendapatkan output yang
mirip dengan yang ditunjukkan di bawah ini. Untuk mengakhiri program,
masukkan Ctrl+C . Anda akan mendapatkan kesalahan KeyboardInterrupt seperti yang
ditunjukkan pada output di bawah ini. Untuk menghentikan aplikasi lebih anggun, Anda
akan menambahkan berhenti fungsi di dalam langkah berikutnya.
devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_3.py
Lokasi Awal : Washington, DC
Tujuan: Baltimore, Md
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ&f rom=Washington%2C+DC&to=Baltimore
%2C+Md
API Status: 0 = A sukses rute panggilan.
 
Lokasi Awal: ^C Traceback
(panggilan terakhir
terakhir): File "mapquest_parse-
json_3.py", baris 9, di <module>
orig =
input("Lokasi
Awal:
") KeyboardInterru
pt
 
devasc@labvm:~/labs/devnet-src/mapquest$
 
Langkah 9: Tambahkan berhenti fungsi untuk itu aplikasi.
Alih - alih memaksa aplikasi untuk berhenti dengan interupsi keyboard ,
Anda akan menambahkan kemampuan bagi pengguna untuk masuk
q atau quit sebagai kata kunci untuk keluar dari aplikasi. Lengkapi yang berikut langkah-langkah untuk
memperbarui Anda aplikasi:
a. Simpan skrip Anda sebagai mapquest_parse-json_4.py .
b. Menambahkan sebuah jika pernyataan setelah masing-
masing lokasi variabel untuk memeriksa apakah para pengguna memasuki q atau berhenti , seperti
yang ditunjukkan di bawah ini.

sementara Benar:
orig = input(" 
Lokasi Awal : 
") jika orig =
= "keluar" ata
u orig == "q":
merusak
tujuan = input("Tujuan: ")
jika dest == "
keluar" at
au dest == 
"q": istir
ahat
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
Langkah 10: Uji yang berhenti fungsi.
Jalankan skrip mapquest_parse-json_4.py Anda empat kali untuk menguji setiap
variabel lokasi. Verifikasi bahwa keduanya berhenti dan q akan mengakhiri
aplikasi. Pecahkan masalah kode Anda, jika perlu. Anda harus mendapatkan output yang
mirip dengan berikut ini.
devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_4.py
Lokasi Awal : q
devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_4.py
Lokasi Awal : berhenti
devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_4.py
Lokasi Awal : Washington, DC
Tujuan: q
devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_4.py
Lokasi
Awal: Washington,
DC Tujuan: quit devas
c@labvm:~/labs/devnet
-src/mapquest$

Langkah 11: Tampilan yang Data JSON di JSONView.
The Browser Chromium
di dalam DEVASC VM termasuk yang JSONView ekstensi. Anda dapat menggunakan ini u
ntuk melihat sebuah JSON objek di sebuah dibaca, berwarna, dan dilipat Format.
a. Jalankan Anda mapquest_parse-json_4.py lagi dan copy yang kode kembali un
tuk para URL. Jangan tidak menggunakan yang kode di bawah ini. Hasil
Anda akan menyertakan kunci API Anda .

devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_4.py
Lokasi Awal : Washington, DC
Tujuan: Baltimore, Md
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ&f rom=Washington%2C+DC&to=Baltimore
%2C+Md
API Status: 0 = A sukses rute panggilan.
 
Lokasi Awal : berhenti
devasc@labvm:~/labs/devnet-src/mapquest$
b. Paste yang URL di dalam Chromium Browser alamat lapangan.
c.Runtuh Data JSONView oleh memilih yang lari " - " sebelum rute , Anda
akan melihat bahwa ada yang dua akar kamus: rute dan informasi .

{
- rute:{
h
a
s
T
o
l
l
R
o
a
d
:

s
a
l
a
h
,
 
h
a
s
B
r
i
d
g
e
:
 
b
e
n
a
r
,
<keluaran dihilangkan>

Anda akan melihat bahwa ada yang dua akar kamus: rute dan informasi . Perhatikan
bahwa informasi memiliki yang statusCode
kunci/nilai yang dipasangkan digunakan dalam kode Anda .
{
+ rute: {},
- informasi: {
kode status: 0,
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
- hak cipta: {
imageAltText: "© 2019 MapQuest, Inc.",
imageUrl: "http://api.mqcdn.c
om/res/mqlogo.gif", teks: "© 
2019 MapQuest, Inc."
},
pesan: [ ]
}
}
d. Perluas kamus rute (klik tanda plus " + " sebelum rute ) dan selidiki data yang
kaya. Ada nilai untuk menunjukkan apakah rute tersebut memiliki jalan tol, jembatan,
terowongan, jalan raya, penutupan, atau persimpangan ke negara lain. Anda juga harus
melihat nilai jarak, total waktu perjalanan, dan penggunaan bahan
bakar . Untuk mengurai dan menampilkan ini Data di aplikasi Anda, Anda
akan menentukan yang rute kamus dan kemudian pilih pasangan kunci / nilai yang
Anda ingin mencetak. Anda akan melakukan beberapa penguraian kamus rute di
bagian lab selanjutnya.

 
Bagian 5:
Tingkatkan yang MapQuest Arah Aplikasi dengan Lebih Fitur
Dalam Bagian ini, Anda akan menambahkan fitur tambahan untuk Arah Aplikasi MapQuest
Anda untuk memberikan lebih
banyak informasi kepada para pengguna. Anda akan menyertakan beberapa perjalanan Ring
kasan informasi dan kemudian sebuah daftar dari yang arah diurai dari para kaki kamus. Seb
agai sebuah akhir langkah, Anda akan menambahkan beberapa kesalahan
dasar pengecekan untuk memvalidasi pengguna masukan.
 
Langkah 1: Tampilkan informasi ringkasan perjalanan untuk menyertakan durasi,
jarak, dan bahan bakar yang digunakan.
a. Simpan skrip Anda sebagai mapquest_parse-json_5.py .
b. Di bawah ini API Status cetak perintah,
tambahkan beberapa cetak laporan yang menampilkan para dari dan ke lokasi, seperti j
uga sebagai FORMATTEDTIME , jarak , dan fuelUsed kunci.

Laporan tambahan juga termasuk laporan cetak yang akan menampilkan garis ganda
sebelum
berikutnya permintaan untuk sebuah awal lokasi. Membuat yakin ini pernyataan yang te
rtanam di dalam sementara Benar fungsi.
jika json_status == 0:
mencetak ( "API Status: " + str
(json_status) + " = A sukses rute . panggilan \ n") print
( "======================= ========================")
print("Arah dari " + (asal) + " ke " + (tujuan))
print(" Durasi Perjalanan :  " + (json_data["
rute"]["formattedTime"])) print("Miles:  " +
str(json_data["rute"]["jarak"])) print("Bahan
Bakar Digunakan (Gal): " +
str(json_data["rute"]["bahan bakar
Digunakan"])) print("====
==========================================)
c.Simpan dan jalankan mapquest_parse-json_5.py untuk melihat dengan output berikut.

devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_5.py
Lokasi Awal : Washington, DC
Tujuan: Baltimore, Md
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ&f rom=Washington%2C+DC&to=Baltimore
%2C+Md
API Status: 0 = A sukses rute panggilan.
 
===============================================
Petunjuk arah dari
Washington, DC ke Baltimore,
Md Durasi Perjalanan :  00:4
9:29
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
Mi
l: 
38
.0
89 
Ba
ha
n
Ba
ka
r
ya
ng 
Di
gu
na
ka

(G
al
): 
1,
65
===============================================
Lokasi Awal : q
devasc@labvm:~/labs/devnet-src/mapquest$
d. Secara default, MapQuest menggunakan sistem imperial dan tidak ada parameter
permintaan untuk mengubah data ke sistem metrik. Oleh karena itu, Anda mungkin
harus mengonversi aplikasi Anda untuk menampilkan nilai metrik, seperti
yang ditunjukkan di bawah ini.

print(" Kilometer : " + str((json_data["rute"]
["jarak"]) *1.61 )) print("Bahan
Bakar Digunakan ( Ltr ): " + str((json_data["rute"
][" bahan bakar Digunakan "]) *3.78 ) )
e. Jalankan yang dimodifikasi mapquest_parse-json_5.py naskah untuk melihat dengan output
sebagai berikut:

devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_5.py
Lokasi Awal : Washington, DC
Tujuan: Baltimore, Md
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ&f rom=Washington%2C+DC&to=Baltimore
%2C+Md
API Status: 0 = A sukses rute panggilan.
 
===============================================
Petunjuk arah dari
Washington, DC ke Baltimore,
Md Durasi Perjalanan :  00:4
9:29
Kilometer: 61.32329
Bahan Bakar yang Digunakan (Ltr): 6.236999999999999
===============================================
Lokasi Awal : q
devasc@labvm:~/labs/devnet-src/mapquest$
f. Tempat desimal ekstra untuk Kilometer dan Bahan Bakar yang Digunakan tidak
membantu. Gunakan argumen "{:.2f}".format untuk memformat nilai float ke 2 tempat
desimal sebelum mengonversinya menjadi nilai string, seperti yang ditunjukkan di
bawah ini. Setiap pernyataan harus dalam satu baris.

print("Kilometer: "
+ str( "{:.2f}".format ((json_data["rut
e"]["jarak"])*1.61)))
print("Bahan Bakar yang Digunakan
(Ltr): "
+ str( "{:.2f}".format ((json_data["rute
"]["bahan bakar Digunakan"])*3.78)))
 
 
Langkah 2: Uji yang parsing dan format fungsi.
Simpan dan jalankan skrip mapquest_parse-json_5.py Anda untuk
memverifikasinya berfungsi. Pecahkan masalah kode Anda, jika perlu. Pastikan
Anda memiliki semua tanda kurung buka dan tutup yang benar. Anda harus
mendapatkan output yang sama dengan yang berikut.
devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_5.py
Lokasi Awal : Washington, DC
Tujuan: Baltimore, Md
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ&f rom=Washington%2C+DC&to=Baltimore
%2C+Md
API Status: 0 = A sukses rute panggilan.
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
===============================================
Petunjuk arah dari
Washington, DC ke Baltimore,
Md Durasi Perjalanan :  00:4
9:29
Kilometer: 61,32
Bahan Bakar yang Digunakan (Ltr): 6,24
===============================================
Lokasi Awal : q
devasc@labvm:~/labs/devnet-src/mapquest$
 
Langkah 3: Periksa dengan manuver daftar di dalam data JSON.
a. Sekarang Anda siap untuk menampilkan petunjuk langkah demi langkah dari lokasi
awal hingga tujuan. Kembali ke browser Chromium tempat sebelumnya Anda
melihat output di JSONView. Jika Anda
menutup peramban, salin yang URL dari terakhir kali Anda berlari program dan
paste ke browser address bar.
b. Di dalam kamus rute , temukan daftar kaki . Daftar kaki mencakup satu kamus besar
dengan sebagian besar data JSON. Temukan daftar manuver dan tutup masing-
masing dari tujuh kamus di dalamnya, seperti yang ditunjukkan di bawah
ini (klik tanda minus " - " untuk mengubahnya menjadi tanda plus " + " ). Jika Anda
menggunakan lokasi yang berbeda, Anda
akan mungkin memiliki sebuah berbeda jumlah dari manuver kamus.

-   kaki: [
- {
h
a
s
T
o
l
l
R
o
a
d
:

s
a
l
a
h
,
 
h
a
s
B
r
i
d
g
e
:
 
b
e
n
a
r
,
destNarasi: "Lanjutkan
ke BALTIMORE,
MD.", jarak: 38.089,
hasTim
edRest
rictio
n:
false, 
hasTun
nel:
false, 
hasHig
hway: 
true,
indeks: 0,
diformatWaktu: "00:49:29",
origInd
ex:
-1, has
AccessR
estrict
ion:
false, 
hasSeas
onalClo
sure:
false, 
hasCoun
tryCros
s: fals
e,
-
S
t
r
a
t
e
g
i
T
i
n
g
k
a
t
J
a
l
a
n
:


]
],
indeks tujuan: 3,
waktu: 2969,
h
asU
npa
ved
:
fal
se, 
ori
gNa
rra
tiv
e: 
"",
- man
uver: 
[
+ {…}
,
+ {…}
,
+ {…}
,
+ {…}
,
+ {…}
,
+ {…}
,
+ {…
}
],
hasFerry: salah
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
}
],
- opsi: {

c.Perluas kamus pertama dalam daftar manuver . Setiap kamus


berisi kunci naratif dengan nilai, seperti "Mulai ke utara...", seperti yang ditunjukkan di
bawah ini. Anda perlu mengurai data JSON untuk mengekstrak
nilai untuk para narasi kunci untuk display dalam Anda aplikasi.

-   kaki: [
- {
h
a
s
T
o
l
l
R
o
a
d
:

s
a
l
a
h
,
 
h
a
s
B
r
i
d
g
e
:
 
b
e
n
a
r
,
destNarasi: "Lanjutkan
ke BALTIMORE,
MD.", jarak: 38.089,
hasTim
edRest
rictio
n:
false, 
hasTun
nel:
false, 
hasHig
hway: 
true,
indeks: 0,
diformatWaktu: "00:49:29",
origInd
ex:
-1, has
AccessR
estrict
ion:
false, 
hasSeas
onalClo
sure:
false, 
hasCoun
tryCros
s: fals
e,
-
S
t
r
a
t
e
g
i
T
i
n
g
k
a
t
J
a
l
a
n
:


]
],
indeks tujuan: 3,
waktu: 2969,
h
asU
npa
ved
:
fal
se, 
ori
gNa
rra
tiv
e: 
"",
- manuver: [
- {
jarak: 0,792,
- jalan - jalan: [
"Jalan ke-6 ",
"US-50 E",
"AS-1 N"
],
narasi: "Start keluar ke utara pada 6 St /
US-50E / US-1 N menuju Pennsylvania Ave / US-1 Alt N.",
Tipe belok: 0,
- Startpoint: {
lng: -77.019913,
lat: 38.892063
},
indeks: 0,
forma
ttedT
ime:
"00:0
2:06"
, dir
ectio
nName
:
"Nort
h" , 
manuv
erCat
atan: 
[ ], 
linkI
ds: [ 
],
- tanda: [
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

- {
 
 
 
<keluaran dihilangkan>

ekstraTeks: "",
contoh: "50",
jenis: 2,

Catatan : Firman bungkus itu ditambahkan untuk yang nilai di dalam narasi untuk display tujuan.
 
Langkah 4: Menambahkan untuk lingkaran untuk iterate melalui para manuver JSO
N data.
Selesaikan langkah-langkah berikut untuk memutakhirkan aplikasi untuk menampilkan nilai
untuk kunci naratif . Anda akan melakukan ini dengan membuat loop for untuk beralih
melalui daftar manuver, menampilkan nilai naratif untuk
setiap manuver dari lokasi awal ke tujuan.
a. Simpan skrip Anda sebagai mapquest_parse-json_6.py .
b. Tambahkan loop for, yang disorot di bawah, setelah pernyataan cetak baris ganda
kedua. Untuk loop berulang melalui setiap daftar manuver dan melakukan
hal berikut:

1)    Mencetak nilai naratif .
2)    Mengonversi mil ke kilometer dengan *1,61 .
3)    Format yang kilometer nilai untuk mencetak hanya dua desimal tempat dengan para : Format
"{.2f}". Fungsi.
c.Tambahkan cetak pernyataan bahwa akan menampilkan garis ganda sebelum
aplikasi meminta untuk memulai lagi lokasi, seperti yang ditunjukkan di bawah
ini.

Catatan : ganda garis cetak pernyataan tersebut tidak
menjorok dalam satu untuk lingkaran. Karena itu, ini adalah bagian dari yang sebelumnya
if pernyataan yang memeriksa parameter statuscode .
print("Bahan
Bakar Digunakan (Ltr): " + str("{:.2f}".format((json_data["rute"]["bahan
bakar Digunakan"])*3.78))) print("======
=======================================")
untuk masing - masing di json_data["rute"]["kaki"][0]["manuver"]:
print((setiap["narasi"]) + " ("
+ str("{:.2f}".format((setiap["jarak"])*1.61) + " km)")) print("==
===========================================\n")
 
Langkah 5: Kegiatan - Uji yang JSON iterasi.
Simpan dan jalankan skrip mapquest_parse-json_6.py Anda untuk memverifikasi
bahwa itu berfungsi. Pecahkan
masalah kode Anda , jika perlu. Anda harus mendapatkan sebuah output yang mirip
dengan yang berikut:
devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_6.py
Lokasi Awal : Washington, DC
Tujuan: Baltimore, Md
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ&f rom=Washington%2C+DC&to=Baltimore
%2C+Md
API Status: 0 = A sukses rute panggilan.
 
===============================================
Petunjuk arah dari
Washington, DC ke Baltimore,
Md Durasi Perjalanan :  00:4
9:29
Kilometer: 61,32
Bahan Bakar yang Digunakan (Ltr): 6,24
===============================================
Mulai ke utara di 6th St/US-50 E/US-1 N menuju Pennsylvania
Ave/US-1 Alt N. (1,28 km)

Lab - Integrate a REST API in a Python Application
 
 
Belok kanan ke New York Ave/US-50 E. Terus ikuti US-50 E
(Menyeberang ke Maryland). (7,51 km)
Ambil yang Balt-Wash Parkway keluar di dalam kiri 
menuju Baltimore. (0,88 km) Gabung ke MD-295 N. (5
0,38 km)
Belok kanan ke W Pratt St. (0,86 km)
Belok kiri ke S
Calvert St/MD-2. (0.43
km) Selamat
Datang ke BALTIMORE, M
D. (0,00 km)
===============================================
 
Lokasi Awal : q
devasc@labvm:~/labs/devnet-src/mapquest$
 
Langkah 6: Periksa untuk tidak valid pengguna masukan.
Sekarang Anda yang siap untuk menambah satu akhir fitur untuk Anda aplikasi untuk melap
orkan kesalahan ketika pengguna memasukkan valid data. Ingat bahwa Anda memulai jika
loop untuk pastikan itu kembali statusCode sama dengan 0 sebelum parsing JSON Data:
json_status = json_data["info"][" statuscode "]
 
jika json_status == 0:
mencetak ( "API Status: " + str
(json_status) + " = A sukses rute . panggilan \ n")

Tapi apa yang terjadi jika statusCode tidak sama dengan 0? Misalnya, pengguna mungkin
memasukkan lokasi yang tidak valid atau mungkin tidak memasukkan satu atau beberapa
lokasi. Jika demikian, maka aplikasi akan menampilkan URL dan meminta lokasi awal yang
baru . The user tidak tahu apa yang terjadi.
a. Untuk menyebabkan aplikasi Anda untuk gagal tanpa
pengguna pemberitahuan, cobalah yang berikut nilai-nilai dalam Anda aplikasi. Anda a
kan melihat hasil yang serupa.

devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_6.py
Lokasi Awal : Washington, DC
Tujuan: Beijing, Cina
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ&f rom = Washington% 2C + DC & untuk =
Beijing% 2C + Cina
Lokasi Awal : Washington, DC
Tujuan: Bal
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ&f rom=Washington%2C+DC&to=Bal
Lokasi Awal : q
devasc@labvm:~/labs/devnet-src/mapquest$
b. Salin salah satu URL ke tab browser Chromium. Perhatikan bahwa satu-satunya entri
dalam kamus rute adalah kamus routeError dengan errorCode 2. Dalam kamus info,
kode statusnya adalah 402 . Oleh karena itu, Anda jika lingkaran tidak
pernah dieksekusi kode untuk saat ini statusCode adalah 0 .
c.Simpan skrip Anda sebagai mapquest_parse-json_7.py .
d. Untuk memberikan informasi kesalahan ketika kode status sama
dengan 402 , 611 , atau nilai lain, tambahkan
dua pernyataan elif dan pernyataan lain ke loop if
Anda. Anda Elif dan lain pernyataan harus menyelaraskan
dengan sebelumnya jika pernyataan. Setelah itu terakhir ganda
garis cetak pernyataan di
bawah ini jika json_status == 0 , tambahkan yang berikut Elif dan lain pernyata
an:

jika json_status == 0:
<pernyataan dihilangkan>
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
untuk masing-masing di
json_data["rute"]["kaki"][0]
["manuver"]: print((setiap["na
rasi"]) + " (" +
str("{:.2f}".format((setiap["jarak"])*1.61) + "
km)")) print("================ ============================\n")
elif json_status ==
402: print("******************************
********* *****")
print("Kode Status: " + str(json_status) + "; Input pengguna
tidak valid untuk satu atau kedua lokasi.")
mencetak("***************************
*******************\
n") elif json_status == 611:
mencetak("**********************************************" )
print(" Kode Status : " + str(json_status) + "; Tidak ada entri un
tuk satu atau kedua lokasi.")
mencetak("***************************
*******************\ n") lain:
mencetak("***********************************************
*************************") print("Untuk Kode Staus: " +
str(json_status) + ";
Lihat:") print( "https://developer.mapquest.com/documentation/
directions-api/status-codes") print("*************************
***********************************************\n" )
Pertama Elif pernyataan cetak jika statusCode nilai adalah 402 untuk lokasi yang
tidak valid. Kedua Elif pernyataan cetak jika yang statusCode nilai
adalah 611 karena para pengguna tidak tidak memberikan sebuah entri untuk satu
atau kedua lokasi. The lain pernyataan cetak untuk semua lainnya statusCode nilai-
nilai, seperti ketika situs
MapQuest mengembalikan kesalahan. The lain pernyataan berakhir dengan jika /
lain lingkaran dan mengembalikan aplikasi untuk sementara lingkaran.
 
Bagian 6: Uji Fungsionalitas Aplikasi Penuh
Jalankan skrip mapquest_parse-json_7.py Anda dan verifikasi
bahwa itu berfungsi. Pecahkan masalah kode Anda , jika perlu. Uji semua
fitur aplikasi. Anda harus mendapatkan output yang mirip dengan yang berikut.
devasc@labvm:~/labs/devnet-src/mapquest$ python3 mapquest_parse-
json_7.py
Lokasi Awal : Washington, DC
Tujuan: Baltimore, Md
URL:
https://www.mapquestapi.com/directions/v2/route?key = 
fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ &f rom=Washington%2C+DC&to=Baltimore
%2C+Md
API Status: 0 = A sukses rute panggilan.
 
===============================================
Petunjuk
arah dari Washington, DC ke 
Baltimore, Md Durasi Perjala
nan :  00:49:29
Kilometer: 61,32
Bahan Bakar yang Digunakan (Ltr): 6,24
===============================================
Mulai ke utara di 6th St/US-50 E/US-1 N menuju Pennsylvania
Ave/US-1 Alt N. (1,28 km)
Belok kanan ke New York Ave/US-50 E. Terus ikuti US-50 E
(Menyeberang ke Maryland). (7,51 km)
Ambil yang Balt-Wash Parkway keluar di dalam kiri 
menuju Baltimore. (0,88 km) Gabung ke MD-295 N. (5
0,38 km)
Belok kanan ke W Pratt St. (0,86 km)
Belok kiri ke S
Calvert St/MD-2. (0.43
km) Selamat
Datang ke BALTIMORE, M
D. (0,00 km)
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
===============================================
 
Lokasi Awal : Moskow, Rusia
Tujuan: Beijing, Cina
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ &f rom=Moscow%2C+Russia&to=Beijing
%2C+China
API Status: 0 = A sukses rute panggilan.
 
===============================================
Arah dari Moskow, Rusia unt
uk Beijing, Cina Trip Durat
ion:  84:31:10
Kilometer: 7826,83
Bahan Bakar yang Digunakan (Ltr): 793,20
===============================================
Mulai keluar akan barat pada Кремлёвская набережная /
Kremlin Embankment. (0,37 km)
Belok sedikit ke kanan ke jalan. (0,15 km)
Belok sedikit ke kanan ke оровицкая ощадь . (0,23 km)
<keluaran dihilangkan>
Belok sedikit kiri ke 前门东大街/ Qianmen
East Street. (0.31 km) Belok kiri ke 广场东
侧路/ E . Guangchang Rd . (0,82 km)
广场东侧路/ E . Guangchang Rd menjadi 东长安街/
E. Chang'an Str. (0.19 km) Selamat
Datang ke BEIJING . (0.00 km)
===============================================
 
Lokasi Awal : Washington, DC
Tujuan: Beijing, Cina
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ &f rom=Washington%2C+DC&to=Beijing
%2C+China
**********************************************
Kode Status : 402; Masukan pengguna tidak
valid untuk satu atau kedua lokasi.
**********************************************
 
Lokasi Awal : Washington, DC
Tujuan: Bal
URL:
https://www.mapquestapi.com/directions/v2/route?
key=fZadaFOY22VIEEemZcBFfxl5vjSXIPpZ &f rom=Washington%2C+DC&to=Bal
**********************************************
Kode Status : 402; Masukan pengguna tidak
valid untuk satu atau kedua lokasi.
**********************************************
 
Lokasi Awal : Washington, DC
Tujuan:
URL:
https://www.mapquestapi.com/directions/v2/route?
key=ANUqwkHlgDv1vlsyBPtVrFe X8 uu6agjA&from=Washington%2C+DC&to=
**********************************************
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Lab - Integrate a REST API in a Python Application
 
 
Kode Status : 611; Tidak ada entri untuk satu atau kedua lokasi.
**********************************************
 
Lokasi Awal : berhenti
devasc@labvm:~/labs/devnet-src/mapquest$
www.netacad.comPage 2 of 16 2020 - 2020 Cisco and/or its affiliates. All 
rights reserved. Cisco Public 

Anda mungkin juga menyukai