در این مطلب، ویدئو ساخت API REST در پایتون | اتوماسیون خانگی شماره 02 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,000 –> 00:00:02,220
این ویدیو با حمایت مالی شرکت brilliant org
2
00:00:02,220 –> 00:00:04,650
به قسمت دوم از این مجموعه اتوماسیون خانگی خوش آمدید
3
00:00:04,650 –> 00:00:06,690
در اولین ویدیو
4
00:00:06,690 –> 00:00:08,700
که طرح پروژه
5
00:00:08,700 –> 00:00:10,530
ساختن یک سیستم اتوماسیون خانگی را بررسی کردم که
6
00:00:10,530 –> 00:00:13,019
می تواند همه دستگاه های هوشمند و
7
00:00:13,019 –> 00:00:14,790
چیزهای غیر هوشمند من را کنترل کند. مجموعه ای
8
00:00:14,790 –> 00:00:16,650
از سرویس های میکرو خواهد بود که با هم کار می کنند و
9
00:00:16,650 –> 00:00:19,050
در ابتدا یک رابط وب ساده در
10
00:00:19,050 –> 00:00:20,760
جلو قرار دارد. اولین سرویس میکروی که
11
00:00:20,760 –> 00:00:21,960
در این ویدیو می خواهم بسازم
12
00:00:21,960 –> 00:00:24,539
سرویس رجیستری دستگاه است که این
13
00:00:24,539 –> 00:00:26,279
سرویس اطلاعات مربوط به همه
14
00:00:26,279 –> 00:00:27,930
دستگاه های موجود در دستگاه را ذخیره می کند. سیستمی که می تواند کنترل شود،
15
00:00:27,930 –> 00:00:29,789
بنابراین فقط به یک
16
00:00:29,789 –> 00:00:33,480
توانایی اولیه برای ایجاد منابع خواندن و حذف نیاز
17
00:00:33,480 –> 00:00:37,559
دارد. یک منبع، یک شی است
18
00:00:37,559 –> 00:00:39,420
که API ذخیره می کند، بنابراین می تواند یک
19
00:00:39,420 –> 00:00:41,520
کارمند یک مقاله یا در این مورد یک
20
00:00:41,520 –> 00:00:43,620
دستگاه منابع متعدد از
21
00:00:43,620 –> 00:00:46,140
یک نوع باشد. مجموعه و این
22
00:00:46,140 –> 00:00:48,329
توانایی برای ایجاد منابع خواندن و حذف
23
00:00:48,329 –> 00:00:51,180
در یک REST
24
00:00:51,180 –> 00:00:53,329
API نمایش داده می شود،
25
00:00:55,310 –> 00:00:57,710
بنابراین یک API فقط یک رابط است که می
26
00:00:57,710 –> 00:00:59,480
توانید در صورت دنبال کردن API از آن درخواست کنید و از آن پاسخ دریافت کنید.
27
00:00:59,480 –> 00:01:01,430
با توجه به برخی
28
00:01:01,430 –> 00:01:04,129
دستورالعملها و اصول خاص،
29
00:01:04,129 –> 00:01:06,770
میتوان آن را استراحت در نظر گرفت یا
30
00:01:06,770 –> 00:01:09,700
استراحت api restful مخفف
31
00:01:09,700 –> 00:01:14,330
انتقال حالت بازنمایی است، یکی از
32
00:01:14,330 –> 00:01:16,280
ویژگیهای اصلی یک api restful این نیست که
33
00:01:16,280 –> 00:01:18,710
باید بدون حالت باشد، بنابراین نمیتواند زمینه را
34
00:01:18,710 –> 00:01:20,270
بین درخواستها ذخیره کند. به یاد داشته باشید که چه
35
00:01:20,270 –> 00:01:22,340
کسی هستید یا قبلاً چه چیزی پرسیده اید، به
36
00:01:22,340 –> 00:01:24,950
این معنی که هر درخواستی که
37
00:01:24,950 –> 00:01:26,570
دریافت می شود باید حاوی تمام
38
00:01:26,570 –> 00:01:28,640
اطلاعات لازم برای پردازش
39
00:01:28,640 –> 00:01:30,920
درخواست ها از طریق HTTP یا
40
00:01:30,920 –> 00:01:33,590
HTTPS باشد، همان چیزی که مرورگرها برای
41
00:01:33,590 –> 00:01:36,200
بازیابی وب سایت ها و هنگام انجام آن استفاده می کنند.
42
00:01:36,200 –> 00:01:37,850
درخواست های HTTP افعال یا روش های مختلفی وجود دارد
43
00:01:37,850 –> 00:01:39,500
که می توانید از آنها برای ایجاد
44
00:01:39,500 –> 00:01:41,780
انواع مختلف
45
00:01:41,780 –> 00:01:43,670
درخواست ها استفاده کنید.
46
00:01:43,670 –> 00:01:45,800
47
00:01:45,800 –> 00:01:47,840
48
00:01:47,840 –> 00:01:49,190
49
00:01:49,190 –> 00:01:51,289
اگر
50
00:01:51,289 –> 00:01:53,030
چندین بار درخواست دریافت یکسانی را ارسال
51
00:01:53,030 –> 00:01:54,530
کنید، باید تغییر کند، پس باید هر
52
00:01:54,530 –> 00:01:56,000
بار که این درخواست به عنوان یک
53
00:01:56,000 –> 00:01:59,270
درخواست ناتوان شناخته می شود، همان پاسخ را دریافت کنید. شما درخواست های پست دارید
54
00:01:59,270 –> 00:02:01,070
و باید از آنها برای ایجاد یک
55
00:02:01,070 –> 00:02:03,350
منبع جدید استفاده کنید، بنابراین این موارد مهم نیستند
56
00:02:03,350 –> 00:02:05,479
زیرا اگر یک درخواست پست یکسان را
57
00:02:05,479 –> 00:02:06,860
پنج بار ارسال
58
00:02:06,860 –> 00:02:09,019
کنید، پنج منبع ایجاد می شود، بنابراین
59
00:02:09,019 –> 00:02:10,429
تکرار و تکرار آخرین روش امن نیست.
60
00:02:10,429 –> 00:02:11,780
که امروز به آن اهمیت می دهیم
61
00:02:11,780 –> 00:02:13,580
حذف است و همانطور که انتظار دارید برای حذف منابع استفاده می شود،
62
00:02:13,580 –> 00:02:15,650
این نیز
63
00:02:15,650 –> 00:02:17,269
تعریف شده است که من مهم است زیرا
64
00:02:17,269 –> 00:02:19,400
اگر یک درخواست را چندین بار ارسال
65
00:02:19,400 –> 00:02:21,650
کنید، همان اثری را دارد که فقط
66
00:02:21,650 –> 00:02:23,989
یک بار آن را انجام دهید. ایمن است که این کار را بارها و
67
00:02:23,989 –> 00:02:25,040
بارها ادامه دهید و این به این دلیل است که از شما
68
00:02:25,040 –> 00:02:27,170
خواسته شده یک منبع خاص را حذف کنید
69
00:02:27,170 –> 00:02:28,190
و بار اول که این کار را انجام می دهید،
70
00:02:28,190 –> 00:02:29,930
بار دوم این کار را انجام می دهد، دیگر
71
00:02:29,930 –> 00:02:31,310
آن منبع را پیدا نمی کند، بنابراین
72
00:02:31,310 –> 00:02:32,750
نمی تواند
73
00:02:32,750 –> 00:02:34,340
وضعیت سیستم را در سایر
74
00:02:34,340 –> 00:02:35,690
روشها تغییر دهید، اما هنوز به آنها نیاز نداریم،
75
00:02:35,690 –> 00:02:38,120
این کار ما را شروع میکند، اجازه دهید ابتدا به
76
00:02:38,120 –> 00:02:40,040
نقاط پایانی مورد نظر برای
77
00:02:40,040 –> 00:02:42,650
این API فکر کنیم، ابتدا دستگاههای اسلش
78
00:02:42,650 –> 00:02:44,989
برای نمایش مجموعه داشته باشیم تا همه
79
00:02:44,989 –> 00:02:46,880
منابع همه دستگاهها را
80
00:02:46,880 –> 00:02:49,250
بریده بریده میکنند و یک شناسه برای
81
00:02:49,250 –> 00:02:51,170
نشان دادن یک منبع خاص، بنابراین
82
00:02:51,170 –> 00:02:53,150
دستگاه خاصی را به ما نشان میدهد که من
83
00:02:53,150 –> 00:02:55,190
آن را شناسه علاقهمندی مینامم،
84
00:02:55,190 –> 00:02:57,680
زیرا ID برای من نشان میدهد که این
85
00:02:57,680 –> 00:02:59,900
یک عدد فقط یک عدد خواهد بود. عدد صحیح اما در
86
00:02:59,900 –> 00:03:01,760
این مورد می تواند یک رشته باشد و ممکن
87
00:03:01,760 –> 00:03:03,110
است کلماتی در آن وجود داشته باشد، پس بیایید
88
00:03:03,110 –> 00:03:05,000
یادآوری کنیم که آن را به عنوان یک عدد
89
00:03:05,000 –> 00:03:06,500
در نظر نگیریم تا آنها دو نقطه پایانی باشند، حالا بیایید
90
00:03:06,500 –> 00:03:07,790
فکر کنیم که کدام روش
91
00:03:07,790 –> 00:03:10,909
افعال HTTP را می پذیریم
92
00:03:10,909 –> 00:03:12,109
مجموعهای که میخواهیم بتوانیم مجموعه را
93
00:03:12,109 –> 00:03:13,939
مشاهده کنیم، بنابراین درخواستها را میپذیریم
94
00:03:13,939 –> 00:03:15,980
و میخواهیم بتوانیم یک
95
00:03:15,980 –> 00:03:18,319
منبع جدید، یک دستگاه جدید به
96
00:03:18,319 –> 00:03:19,730
مجموعهها اضافه کنیم، بنابراین
97
00:03:19,730 –> 00:03:23,299
درخواست پست برای انجام این کار را برای
98
00:03:23,299 –> 00:03:24,950
منبع واحد میپذیریم. نقطه پایانی دوباره میخواهیم
99
00:03:24,950 –> 00:03:27,200
بتوانیم آن را مشاهده کنیم، بنابراین میخواهیم به اینجا دسترسی پیدا کنیم
100
00:03:27,200 –> 00:03:28,849
و میخواهیم بتوانیم یک دستگاه خاص را حذف کنیم،
101
00:03:28,849 –> 00:03:30,950
بنابراین حدس میزنید
102
00:03:30,950 –> 00:03:33,650
که از روش حذف HTTP برای آن مورد استفاده میکنیم.
103
00:03:33,650 –> 00:03:38,060
دایرکتوری جدید
104
00:03:38,060 –> 00:03:39,530
برای سرویس و من می خواهم با w شروع کنم
105
00:03:39,530 –> 00:03:41,239
riting و readme و من از این
106
00:03:41,239 –> 00:03:43,430
به عنوان سند برای API استفاده خواهم کرد
107
00:03:43,430 –> 00:03:45,290
و اگر بخواهند از آن استفاده کنند برای شخص دیگری مفید خواهند بود
108
00:03:45,290 –> 00:03:46,970
یا برای من تا دو ماه دیگر وقتی
109
00:03:46,970 –> 00:03:47,959
یادم رفت چگونه کار می
110
00:03:47,959 –> 00:03:52,370
کند یک فایل علامت گذاری ایجاد کنید بیایید در مورد آن فکر کنیم.
111
00:03:52,370 –> 00:03:54,739
پاسخهایی که API
112
00:03:54,739 –> 00:03:56,359
میدهد Jason هستند که
113
00:03:56,359 –> 00:03:58,040
خواندن آن بسیار استاندارد است و یکی از
114
00:03:58,040 –> 00:04:01,189
تکنیکها استفاده از یک پاکت است تا زمانی
115
00:04:01,189 –> 00:04:02,900
که مستقیماً به یک منبع بازگردند
116
00:04:02,900 –> 00:04:04,639
یا مجموعه منابعی که مستقیماً مجموعهای را نشان میدهند،
117
00:04:04,639 –> 00:04:07,700
آن را در آن بپیچید. یک
118
00:04:07,700 –> 00:04:13,849
ویژگی به نام داده و این به شما امکان می دهد
119
00:04:13,849 –> 00:04:16,430
ابرداده اضافی مانند
120
00:04:16,430 –> 00:04:18,620
پیامی که اتفاق افتاده را اضافه کنید، بسیاری از
121
00:04:18,620 –> 00:04:20,599
افراد مخالف این هستند و فکر می کنند که
122
00:04:20,599 –> 00:04:23,539
فراخوانی اضافی است و هدر HTTP
123
00:04:23,539 –> 00:04:26,570
باید حاوی تمام ابرداده باشد، اما
124
00:04:26,570 –> 00:04:27,710
من ترجیح می دهم کمی از آن را داشته باشم.
125
00:04:27,710 –> 00:04:29,360
افزونگی و سپس انعطافپذیری بیشتری داشته
126
00:04:29,360 –> 00:04:31,699
باشم در صورتی که تصمیم بگیرم
127
00:04:31,699 –> 00:04:34,060
به آن نیاز دارم،
128
00:04:40,130 –> 00:04:42,200
129
00:04:42,200 –> 00:04:44,210
هر بار
130
00:04:44,210 –> 00:04:46,610
که ما فقط توضیح میدهیم که چه چیزی
131
00:04:46,610 –> 00:04:48,740
در فیلد داده نمایش داده میشود، نوشتن پاسخ پاکت کامل را به دردسر نمیاندازد. ویژگی
132
00:04:48,740 –> 00:04:50,690
اول لیست کردن همه دستگاهها برای انجام این کار
133
00:04:50,690 –> 00:04:53,420
خواهد بود، ما یک درخواست دریافت به نقطه پایانی دستگاههای اسلش میدهیم،
134
00:04:53,420 –> 00:04:59,780
این یک
135
00:04:59,780 –> 00:05:05,450
کد وضعیت 200 را برمیگرداند که به معنای خوب است و در
136
00:05:05,450 –> 00:05:07,340
آن فیلد داده، آرایهای از
137
00:05:07,340 –> 00:05:09,830
اشیا خواهد داشت، این مجموعه است.
138
00:05:09,830 –> 00:05:11,720
اگر هیچ دستگاهی در رجیستری وجود نداشته باشد، ممکن است خالی باشد،
139
00:05:11,720 –> 00:05:13,190
اما معمولاً
140
00:05:13,190 –> 00:05:15,410
چندین شی را برمی گرداند، هر شی
141
00:05:15,410 –> 00:05:17,570
یک دستگاه را نشان می دهد، همانطور که در
142
00:05:17,570 –> 00:05:19,760
مورد آن بحث کردیم، به یک شناسه نیاز دارد، بنابراین این
143
00:05:19,760 –> 00:05:22,100
می تواند مانند چراغ طبقه باشد که بعداً
144
00:05:22,100 –> 00:05:23,840
نامی مناسب خواهد داشت. که در رابط ها نشان داده می
145
00:05:23,840 –> 00:05:28,940
شود و سپس نوع دستگاه را خواهیم دید
146
00:05:28,940 –> 00:05:30,470
و در حال حاضر این فقط می تواند یک
147
00:05:30,470 –> 00:05:32,110
رشته دلخواه باشد که هیچ محدودیتی روی آن اعمال نمی کند
148
00:05:32,110 –> 00:05:33,560
149
00:05:33,560 –> 00:05:36,710
و در نهایت دروازه کنترلر بنابراین
150
00:05:36,710 –> 00:05:39,500
این آدرس IP است
151
00:05:39,500 –> 00:05:42,290
که اگر می خواهید درخواست ارسال کنید.
152
00:05:42,290 –> 00:05:43,760
اگر فقط برای یادگیری در مورد پایتون اینجا هستید و به
153
00:05:43,760 –> 00:05:45,050
این چیزهای اتوماسیون خانگی اهمیت نمی دهید، این دستگاه را کنترل کنید،
154
00:05:45,050 –> 00:05:47,330
نگران نباشید که این بدان معنی است
155
00:05:47,330 –> 00:05:49,280
که ما به راحتی می توانیم
156
00:05:49,280 –> 00:05:51,170
کارمندان را ذخیره کنیم و سن و آدرس را
157
00:05:51,170 –> 00:05:53,180
در obj داشته باشیم. و غیره، بنابراین میتواند
158
00:05:53,180 –> 00:06:03,350
یکی دیگر را برگرداند و بعد ثبت
159
00:06:03,350 –> 00:06:05,630
یک دستگاه جدید است.
160
00:06:05,630 –> 00:06:07,880
161
00:06:07,880 –> 00:06:09,800
162
00:06:09,800 –> 00:06:11,480
163
00:06:11,480 –> 00:06:13,370
164
00:06:13,370 –> 00:06:14,840
فرم به بدنه
165
00:06:14,840 –> 00:06:16,580
درخواست در اینجا مشخص می کند که
166
00:06:16,580 –> 00:06:18,890
درخواست باید شامل
167
00:06:18,890 –> 00:06:20,090
چه چیزی باشد و فقط چیزهایی هستند که ما در
168
00:06:20,090 –> 00:06:27,020
مورد یک دستگاه ذخیره می کنیم اما شناسه و سپس
169
00:06:27,020 –> 00:06:29,770
آنها
170
00:06:41,449 –> 00:06:43,889
نام نوع دستگاه و در نهایت
171
00:06:43,889 –> 00:06:45,750
کنترلر را دارند. درگاه خوب است به
172
00:06:45,750 –> 00:06:48,449
موارد لبه فکر کنید، مثلاً اگر دستگاهی
173
00:06:48,449 –> 00:06:50,430
با شناسه از قبل وجود داشته باشد، کاری
174
00:06:50,430 –> 00:06:51,990
که ما میخواهیم انجام دهیم این کار را سادهتر میکند
175
00:06:51,990 –> 00:06:53,879
و درست بیش از این،
176
00:06:53,879 –> 00:06:56,159
یک کد وضعیت 201 را برمیگرداند که به این معنی است که
177
00:06:56,159 –> 00:06:59,310
ایجاد شده و باز خواهد گشت. شی ای
178
00:06:59,310 –> 00:07:01,169
که به تازگی ایجاد شده است، بنابراین
179
00:07:01,169 –> 00:07:02,460
مانند یکی از این موارد از
180
00:07:02,460 –> 00:07:07,110
مجموعه بعدی است که می خواهیم
181
00:07:07,110 –> 00:07:08,789
جزئیات دستگاه را جستجو کنیم، این یک
182
00:07:08,789 –> 00:07:10,439
درخواست دریافت برای اسلش اسلش دستگاه با
183
00:07:10,439 –> 00:07:12,569
هر شناسه توسعه دهنده خواهد بود.
184
00:07:12,569 –> 00:07:14,819
دو پاسخ بالقوه از API ما وجود خواهد
185
00:07:14,819 –> 00:07:16,889
داشت که اگر دستگاه وجود نداشته باشد، می توانیم چهار پاسخ را دریافت کنیم که یافت نشد
186
00:07:16,889 –> 00:07:19,740
یا 200 خوب است
187
00:07:19,740 –> 00:07:21,539
در غیر این صورت و دوباره فقط
188
00:07:21,539 –> 00:07:24,180
یک شی را برمی گردانیم، بنابراین من آن را
189
00:07:24,180 –> 00:07:26,400
کپی و پیست می کنم. مثال قبلی
190
00:07:26,400 –> 00:07:28,770
در نهایت حذف یک درخواست حذف دستگاه
191
00:07:28,770 –> 00:07:30,810
برای اسلش دستگاهها، شناسه را بریده بریده
192
00:07:30,810 –> 00:07:33,360
نه برای یافت نشد یا صرفاً برای
193
00:07:33,360 –> 00:07:36,360
سرگرمی، بیایید به وضعیت 2 یا 4 برگردیم به
194
00:07:36,360 –> 00:07:39,270
نام موفقیت که به معنای عدم وجود محتوا است، بنابراین
195
00:07:39,270 –> 00:07:40,469
این بدان معناست که عمل
196
00:07:40,469 –> 00:07:42,270
با موفقیت انجام شده است، اما هیچ داده مفیدی وجود ندارد
197
00:07:42,270 –> 00:07:44,069
که ما می توانیم همه چیز را به درستی برگردانیم این
198
00:07:44,069 –> 00:07:46,560
واقعاً خوب است
199
00:07:46,560 –> 00:07:48,810
ما آنچه را که باید بسازیم کاملاً برنامه ریزی کرده ایم و در عین
200
00:07:48,810 –> 00:07:50,669
حال
201
00:07:50,669 –> 00:07:53,069
اسناد خوبی در مورد نحوه استفاده از
202
00:07:53,069 –> 00:07:55,259
زمان API برای نوشتن کد نوشته ایم. اجازه دهید با
203
00:07:55,259 –> 00:07:57,469
یک اجرای واقعاً ساده شروع کنیم. فایل py و
204
00:07:57,469 –> 00:07:59,279
به معنای واقعی کلمه فقط یک برنامه hello world
205
00:07:59,279 –> 00:08:02,990
بسازید تا مطمئن شوید که من کار می
206
00:08:03,169 –> 00:08:05,639
کنم، فکر می کنم خوب است اگر بتوانیم
207
00:08:05,639 –> 00:08:07,379
این را در داخل یک داکر کانتینر اجرا
208
00:08:07,379 –> 00:08:09,870
کنیم، یک فایل داکر می سازم که آن را بر اساس Python im رسمی استوار می کند.
209
00:08:09,870 –> 00:08:12,210
سن و ما فقط م