WEBVTT

1
00:00.200 --> 00:02.000
กลับไปที่การตอบกลับ Json ของเรา

2
00:02.000 --> 00:05.270
หากเราสังเกตให้ดี
เราจะเห็นวงเล็บเหลี่ยมนี้

3
00:05.270 --> 00:12.260

ดังนั้นการตอบสนองของเราจะเริ่มต้นด้วยวงเล็บสี่เหลี่ยมซึ่งบ่งชี้ว่าทั้งหมดของการตอบสนองเป็นอาร์เรย์
อาร์เรย์ Json

4
00:12.260 --> 00:19.250
และภายในอาเรย์นี้เรามีอ็อบเจ็กต์แรกนี้
และนี่คืออ็อบเจ็กต์

5
00:19.250 --> 00:19.640
Json ตัวที่สองที่แยกด้วยเครื่องหมายจุลภาค

6
00:19.640 --> 00:27.710

เราไม่สามารถทำการแปลงข้อมูลแบบอนุกรมและถอดข้อมูลของออบเจ็กต์
Json นี้ได้โดยตรงโดยใช้คลาส question

7
00:27.710 --> 00:33.680
นี้ เนื่องจากคลาส question
มีฟิลด์หกตัวซึ่งเป็นตัวบ่งชี้ออบเจ็กต์นี้

8
00:33.710 --> 00:34.280
นี่

9
00:34.280 --> 00:37.880
แต่ว่าวัตถุนี้ถูกซ้อนมาจากอาร์เรย์

10
00:37.880 --> 00:42.800

ดังนั้นวิธีแก้ปัญหาสำหรับปัญหานี้คือการสร้างคลาสโมดอลอีกคลาสหนึ่ง

11
00:42.800 --> 00:49.190
ดังนั้นภายในแพ็กเกจโมดัลนี้ ฉันจะสร้างคลาส
Java ใหม่และตั้งชื่อว่า รายการคำถาม

12
00:49.190 --> 00:51.500
นี่คือคลาสที่ว่างเปล่า

13
00:51.500 --> 01:02.600
ฉันจะขยายจาก array list
เพราะเรามีออบเจ็กต์ซ้อนอยู่ภายใน array นี้

14
01:02.600 --> 01:06.740
เนื่องจากคำตอบของเราเริ่มต้นด้วย array นี้
และไม่มีคีย์สำหรับ array นี้

15
01:06.740 --> 01:11.120
ดังนั้นฉันสามารถใช้คลาสว่างนี้ได้โดยตรง

16
01:11.120 --> 01:14.870
มันเป็นประเภทคำถาม นำเข้าคลาส array list

17
01:14.870 --> 01:16.100
และนี่ก็เริ่มแล้ว

18
01:16.100 --> 01:19.700

นี่คือคลาสโหมดที่สองของเราที่เรียกว่ารายการคำถาม

19
01:19.700 --> 01:25.280

มันเป็นคลาสเปล่าเพียงเพื่อให้ได้การตอบกลับและรวมการตอบกลับนี้เข้าไป

20
01:25.280 --> 01:31.460
เนื่องจากคำตอบของ API และคำตอบของ Json
เริ่มต้นด้วยวงเล็บเหลี่ยมนี้

21
01:31.490 --> 01:36.320

ไม่มีคีย์หรือค่าใดที่เป็นค่าโดยตรงของอาร์เรย์

22
01:36.350 --> 01:38.480
กลับไปที่ขั้นตอนการปรับปรุงใหม่

23
01:38.480 --> 01:40.460
เราได้เพิ่มคลาสข้อมูล

24
01:40.460 --> 01:43.700
ตอนนี้เรามาสร้างอินเทอร์เฟซบริการ API กัน

25
01:43.700 --> 01:50.420

เราจำเป็นต้องสร้างอินเทอร์เฟซเพื่อกำหนดวิธีการต่าง
ๆ ของเราที่จะใช้ในการทำธุรกรรมเครือข่าย

26
01:50.420 --> 01:54.800
ฉันจะสร้างแพ็กเกจใหม่ ฉันจะตั้งชื่อว่า
retrofit

27
01:54.800 --> 02:02.840
และภายในแพ็กเกจการปรับปรุงนี้
ฉันจะสร้างอินเทอร์เฟซใหม่
และฉันจะตั้งชื่อว่าคำถาม API

28
02:03.050 --> 02:10.370
อินเทอร์เฟซบริการ API
แบบปรับแต่งเพิ่มเติมเป็นองค์ประกอบสำคัญที่ใช้ในการกำหนดโครงสร้างและพฤติกรรมของคำขอเครือข่ายไปยัง

29
02:10.370 --> 02:13.460
RESTful API

30
02:13.490 --> 02:21.950
อินเทอร์เฟซนี้ทำหน้าที่เป็นสัญญา
เป็นสะพานเชื่อมระหว่างแอปพลิเคชัน Android
ของคุณกับบริการเว็บ

31
02:21.950 --> 02:27.260
โดยระบุจุดสิ้นสุดของ API
ที่มีอยู่และรูปแบบการตอบสนองที่คาดหวัง

32
02:27.290 --> 02:34.160

การปรับปรุงใหม่จะใช้ส่วนติดต่อนี้เพื่อสร้างการใช้งานที่จำเป็นสำหรับการส่งคำขอเครือข่าย

33
02:34.190 --> 02:42.440

แต่ละวิธีภายในอินเทอร์เฟซนี้ควรระบุวิธีการร้องขอ
Http ไม่ว่าจะเป็น get, post,

34
02:42.440 --> 02:50.690
put, delete และ URL
จุดสิ้นสุดที่สัมพันธ์กับ

35
02:50.690 --> 02:51.620
URL ฐาน รวมถึงพารามิเตอร์การค้นหาที่จำเป็น
ร่างคำขอ หรือส่วนหัว

36
02:51.620 --> 02:55.070

คุณยังสามารถระบุแบบฟอร์มการตอบกลับที่คาดหวังได้

37
02:55.070 --> 02:58.520
ในตัวอย่างนี้ ฉันจะใช้ apt get

38
02:58.550 --> 03:07.070
อีกครั้งครับทุกคน
ผมต้องการให้พวกคุณตั้งใจอยู่กับผมและกรุณาอ้างอิงถึงส่วนก่อนหน้านี้
โดยเฉพาะ mVVM plus

39
03:07.070 --> 03:13.820
retrofit
เพื่อให้เข้าใจคำขอและการตอบสนองของ Http
ทั้งหมดนี้

40
03:13.820 --> 03:17.870

และฉันได้ชี้แจงรายละเอียดเหล่านั้นอย่างลึกซึ้งมากแล้ว

41
03:17.870 --> 03:25.430
ดังนั้นโปรดกลับไปที่ส่วน mVVM
พร้อมการปรับปรุงเพิ่มเติมและรับรายละเอียดเกี่ยวกับคำศัพท์เหล่านี้

42
03:25.430 --> 03:28.280
แต่อย่ากังวลไป
ฉันจะอธิบายทุกอย่างให้ชัดเจน

43
03:28.280 --> 03:36.380
ฉันเขียนคำอธิบายประกอบเพื่อระบุวิธีการ
Http และส่วนที่เกี่ยวข้องของ URL

44
03:36.410 --> 03:39.470
ที่นี่ฉันต้องกำหนดจุดสิ้นสุด

45
03:39.470 --> 03:42.560

ดังนั้นถ้าเรากลับไปที่การตอบสนองของจุดสิ้นสุด

46
03:42.590 --> 03:47.390
นี่คือ API แบบทดสอบของฉัน dot php

47
03:47.390 --> 03:50.870
ดังนั้นฉันจะคัดลอกและวางมันที่นี่

48
03:50.870 --> 03:52.910
นี่คือจุดสิ้นสุด

49
03:52.910 --> 03:57.230
แล้วฉันจะใช้ถ่านหินและการปรับปรุงใหม่ด้วย

50
03:57.230 --> 04:02.480
และที่นี่ฉันจำเป็นต้องระบุรายการคำถาม
รายการคำถาม

51
04:02.480 --> 04:07.760
นี่คือคลาสที่เราสร้างไว้ก่อนหน้านี้
และฉันจะตั้งชื่อเมธอดว่า get questions

52
04:07.760 --> 04:17.120
ในการปรับปรุงย้อนหลัง

53
04:17.150 --> 04:17.960

คลาสถ่านหินถูกใช้เพื่อห่อหุ้มคำขอเครือข่ายและแสดงผลลัพธ์ของการดำเนินการแบบอะซิงโครนัส

54
04:17.960 --> 04:26.600

รายการคำถามประเภททั่วไปแสดงถึงประเภทการตอบกลับที่คาดหวัง
และฉันคาดหวังการตอบกลับนี้จาก API

55
04:26.600 --> 04:32.810
โดยเริ่มต้นด้วยวงเล็บเหลี่ยมนี้
ซึ่งเป็นอาร์เรย์ Json

56
04:33.050 --> 04:36.230
นี่คือชื่อของเมธอด get questions

57
04:36.230 --> 04:41.390
ดังนั้นประเภทที่ส่งคืนคือรายการคำถาม

58
04:41.390 --> 04:50.060
เมื่อเรียกใช้เมธอดนี้ get

59
04:50.060 --> 04:51.830
questions
จะส่งคำขอเครือข่ายและคาดหวังว่าจะได้รับคำตอบเป็นรายการคำถาม

60
04:51.830 --> 04:58.880

และรายการคำถามนี้ทำหน้าที่เป็นโครงสร้างของข้อมูลการตอบกลับที่คุณคาดหวังจาก
API

61
04:58.910 --> 04:59.840
และดังที่ได้กล่าวไว้ก่อนหน้านี้

62
04:59.960 --> 05:04.460

เนื่องจากเรากำลังคาดหวังอาร์เรย์ที่ไม่มีคู่คีย์-ค่า

63
05:04.460 --> 05:07.760
มันเป็นอาร์เรย์โดยตรงของการตอบสนองแบบ Json

64
05:07.760 --> 05:13.460
ดังนั้นสำหรับสิ่งนี้
เราใช้คลาสว่างนี้ที่สืบทอดมาจากรายการอาร์เรย์ของเควส

65
05:13.460 --> 05:18.350

ดังนั้นที่นี่ฉันคาดหวังว่าจะได้รับโครงสร้างรายการคำถาม

66
05:18.350 --> 05:19.010
อีกครั้ง

67
05:19.010 --> 05:27.260

วิธีการรับคำถามนี้ถูกกำหนดให้ส่งคำขอเครือข่ายไปยังจุดสิ้นสุด
API เฉพาะ ซึ่งก็คือ API

68
05:27.260 --> 05:35.030
แบบทดสอบของฉันที่ dot PHP
และคาดหวังการตอบกลับในรูปแบบของการเรียกที่มีรายการคำถาม


