การทำความเข้าใจแพลตฟอร์มที่ใช้ API: คู่มือสำหรับผู้จัดการผลิตภัณฑ์
เผยแพร่แล้ว: 2022-03-10การสร้างผลิตภัณฑ์ดิจิทัลในปัจจุบันคือการผสานรวมระบบแบ็คออฟฟิศที่หลากหลายเข้ากับจุดสัมผัสและอุปกรณ์ของลูกค้า ค่าใช้จ่ายในการมีส่วนร่วมกับทีมซอฟต์แวร์เพื่อเชื่อมต่อพวกเขาในโซลูชันการทำงานเดียวอาจพุ่งสูงขึ้น
นี่คือเหตุผลที่ว่าทำไมผู้จัดการผลิตภัณฑ์สมัยใหม่เมื่อเลือกผู้ขาย มักจะใส่ความสามารถในการผสานรวมเป็นอันดับแรก ซึ่งอาจส่งผลต่อการเลือกระบบที่เปิดเผย API API คืออะไรและจะทดสอบได้อย่างไรโดยไม่ต้องให้ทีมเทคโนโลยีของคุณมีส่วนร่วม อ่านต่อ.
โอบรับข้อมูล: เหตุใดเราจึงต้องการ API เลย
ข้อมูลลูกค้าเปลี่ยนวิธีการดำเนินธุรกิจ หากรวบรวมและย้ายอย่างถูกต้อง พวกเขาสามารถช่วยบริษัทต่างๆ เพิ่มอัตราการได้มาซึ่งลูกค้าและรักษาไว้ ซึ่งนำไปสู่รายได้ที่พุ่งกระฉูดในที่สุด
แต่การประมวลผลข้อมูลเป็นงานที่น่าเบื่อ นั่นเป็นเหตุผลที่ธุรกิจใช้วิทยาการคอมพิวเตอร์ ในปี 1990 ฐานข้อมูลซึ่งทำงานด้านข้อมูลที่ใช้เวลานานที่สุดโดยอัตโนมัติได้กลายเป็นที่นิยมอย่างมากในแผนกการตลาด สิ่งนี้นำไปสู่การเปลี่ยนแปลงครั้งใหญ่ในการกำหนดกลยุทธ์ทางการตลาด — การเปลี่ยนแปลงนี้เรียกว่า แนวทางที่ขับเคลื่อนด้วยข้อมูล
ฐานข้อมูลมีข้อเสียที่สำคัญแม้ว่า บริษัทจำเป็นต้องจ้างวิศวกรซอฟต์แวร์เพื่อสร้างคุณค่าให้พวกเขา พวกเขาเป็นฮีโร่ที่รู้วิธีเปลี่ยนข้อมูลจำนวนมหาศาลให้เป็นข้อมูลเชิงลึกในการทำงาน พวกเขายังเป็นผู้พิทักษ์ปกป้องความสมบูรณ์ของข้อมูลและทำให้แน่ใจว่าระบบนั้นรองรับอนาคต
แต่วิศวกรซอฟต์แวร์มีค่าใช้จ่ายมากมาย และอินเทอร์เฟซการสื่อสารของพวกเขาก็ต้องใช้ความพยายามอย่างมาก
เมื่อจำนวนช่องทางการเก็บรวบรวมข้อมูลครอบคลุมหลายแผนกและแม้แต่บริษัทภายนอก ฐานข้อมูลและผู้ให้บริการก็กลายเป็นคอขวด ธุรกิจจำเป็นต้องหาวิธีอัตโนมัติในการเข้าถึงที่เก็บข้อมูล
นี่คือที่มาของแนวคิดของระบบที่เน้น API เป็นหลัก
API คืออะไรโดยไม่มี Tech Lingo
ระบบ API แรกซึ่งปัจจุบันย่อให้สั้นลงเป็น API ( A pplication P rogrammable I nterface) เป็นแอปพลิเคชันที่รับรองว่าระบบอื่นๆ สามารถเข้าถึงข้อมูลได้ในลักษณะที่เป็นหนึ่งเดียวและปลอดภัย
หากไม่มีเกรดวิทยาการคอมพิวเตอร์ Application Programmable Interface จะไม่ส่งเสียงกริ่ง มาดูคำอธิบายที่เป็นรูปธรรมมากขึ้นกัน
หนึ่งในการเปรียบเทียบที่ดีที่สุดที่ฉันเคยพบในเว็บเขียนโดย Taija:
“ถ้าคุณไปร้านอาหารในฐานะลูกค้า คุณจะไม่ได้รับอนุญาตให้เข้าครัว คุณต้องรู้ว่ามีอะไรบ้าง เพื่อที่คุณจะได้มีเมนู หลังจากดูเมนูแล้ว คุณสั่งพนักงานเสิร์ฟที่ส่งต่อไปที่ครัวและใครจะเป็นคนส่งในสิ่งที่คุณขอ บริกรสามารถส่งมอบได้เฉพาะในครัวเท่านั้น
การเปรียบเทียบ API ที่ดีที่สุดที่ฉันเคยเห็น: ไปร้านอาหาร เมนูคือ API คำสั่งของคุณคือการเรียก API อาหารจากครัวคือการตอบสนอง
— อาร์ธี 發財 ! (@AarthiD) 19. ธันวาคม 2556
สิ่งนี้เกี่ยวข้องกับ API อย่างไร พนักงานเสิร์ฟคือ API คุณเป็นคนที่ขอใช้บริการ กล่าวคือ คุณเป็นลูกค้าหรือผู้บริโภค API เมนูนี้เป็นเอกสารที่อธิบายสิ่งที่คุณขอได้จาก API ห้องครัวเป็นเช่นเซิร์ฟเวอร์ ฐานข้อมูลที่มีเพียงข้อมูลบางประเภท ไม่ว่าผู้ซื้อจะซื้ออะไรให้ร้านอาหารเป็นส่วนผสม และสิ่งที่เชฟตัดสินใจว่าจะนำเสนอ และสิ่งที่พ่อครัวรู้วิธีเตรียมอาหาร”
ดังนั้นอีกครั้ง:
- ครัว
ฐานข้อมูลลูกค้าไม่ได้รับอนุญาตให้ปกป้องความสมบูรณ์ของข้อมูล - บริกร
API ซึ่งเป็นพ่อค้าคนกลางที่รู้วิธีให้บริการข้อมูลจากฐานข้อมูลโดยไม่รบกวนการทำงานของฐานข้อมูล - ลูกค้า
ระบบภายนอกที่ต้องการรับข้อมูล - เมนู
รูปแบบข้อมูลอ้างอิงที่ระบบภายนอกต้องใช้เพื่อดำเนินการ - คำสั่ง
การเรียก API เดียวที่เกิดขึ้นจริง
ด้วยสถานะของเทคโนโลยีในปัจจุบัน นักพัฒนาซอฟต์แวร์ยังคงต้อง “ทำการสั่งซื้อ” แต่มันเร็วกว่ามาก (อ่านว่า ถูกกว่า) เพราะเมนูอย่างแมคโดนัลด์นั้นได้มาตรฐานทั่วโลกไม่มากก็น้อย
ตอนนี้เรากำลังจะสวมรองเท้าของนักพัฒนาซอฟต์แวร์และพยายามเรียก API ที่เป็นแบบอย่าง ไม่ต้องกังวล เราจะไม่ไปไกลกว่าชั้นเรียนวิทยาการคอมพิวเตอร์ของโรงเรียน
แอป Weather ของคุณรับข้อมูลอย่างไร: ข้อมูลเบื้องต้นเกี่ยวกับ API
เราจะมาดูกันว่าแอพพยากรณ์อากาศของคุณรู้อุณหภูมิปัจจุบันได้อย่างไร ด้วยวิธีนี้ เราจะได้รับข้อมูลพื้นฐานเกี่ยวกับวิธีการสื่อสารกับระบบผ่านทางอินเทอร์เน็ต
สิ่งที่เราต้องการ:
- ฐานข้อมูลสภาพอากาศ
- เบราว์เซอร์
- พลังแห่งความมุ่งมั่น
แค่นั้นแหละ! เทคโนโลยีในปัจจุบันทำให้ง่ายต่อการทดสอบ API โดยไม่ต้องใช้เครื่องมือสำหรับนักพัฒนารายใหญ่
แน่นอนว่ามันแตกต่างออกไปเมื่อคุณต้องการสร้างการบูรณาการแบบครบวงจร เมื่อต้องเผชิญแรงกดดัน คุณจำเป็นต้องรู้เครื่องมือขั้นสูงและภาษาการเขียนโปรแกรม แต่สำหรับการทดสอบ/การพิสูจน์แนวคิด การตั้งค่านี้ก็เพียงพอแล้ว
ลองรับดัชนีอุณหภูมิปัจจุบันสำหรับเมืองของคุณ หรือเรียกโปรแกรมเรียก API ครั้งแรก ท้ายที่สุด การส่งข้อความไปยังเซิร์ฟเวอร์และรับข้อความเป็นการแลก เปลี่ย
กายวิภาคของคำขอ API
ในบทความนี้ เราจะใช้ https://openweathermap.org API เยี่ยมชมไซต์และลองตรวจสอบสภาพอากาศในสถานที่ต่างๆ หวังว่าคุณจะรู้สึกดีขึ้นกว่าฉันใน Katowice วันนี้:
ตามที่คุณอาจเดาได้ เว็บไซต์กำลังเรียก API เพื่อรับข้อมูล นักพัฒนาใช้งานในลักษณะที่ทุกครั้งที่คุณกด ค้นหา เบื้องหลังแอปพลิเคชันจะเคาะประตู API และบอกว่า "ให้อุณหภูมิ <เมือง> แก่ฉัน"
สวมหมวกแฮ็กเกอร์และดูการเรียก API ที่เว็บไซต์นี้เรียกใช้ด้วยเบราว์เซอร์ของคุณ คุณสามารถใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ในเบราว์เซอร์ของคุณเพื่อดูว่าเกิดอะไรขึ้นเบื้องหลัง:
- ใน Chrome ไปที่ Menu → More tools → Developer Tools;
- สลับไปที่แท็บเครือข่าย
- ลองตรวจสอบอุณหภูมิในเมืองต่างๆ ในวิดเจ็ตด้านบน
- ในรายการด้านล่าง คุณจะสังเกตเห็นลิงก์ที่เรียกว่า:
หากคุณคัดลอกลิงก์ คุณจะเห็นว่ามีชื่อสถานที่และพารามิเตอร์อื่นๆ สองสามตัวhttps://openweathermap.org/data/2.5/find?callback=jQuery19103887954878001505_1542285819413&q=Katowice&type=like&sort=population&cnt=30&appid=b6907d289e10d714a6e88b30761fae22&_=1542285819418
- เมื่อคุณวางลิงก์ลงในแถบที่อยู่ของเบราว์เซอร์ คุณควรเห็นการตอบกลับ API ด้วย:
jQuery19103887954878001505_1542285819413({"message":"accurate","cod":"200","count":1,"list":[{"id":3096472,"name":"Katowice","coord":{"lat":50.2599,"lon":19.0216},"main":{"temp":281.69,"pressure":1031,"humidity":61,"temp_min":281.15,"temp_max":282.15},"dt":1542285000,"wind":{"speed":3.6,"deg":50},"sys":{"country":"PL"},"rain":null,"snow":null,"clouds":{"all":90},"weather":[{"id":804,"main":"Clouds","description":"overcast clouds","icon":"04d"}]}]})
- ค่อนข้างจะวุ่นวาย แต่ถ้าคุณเอาเนื้อหาของวงเล็บออกแล้วเรียกใช้ด้วยตัวจัดรูปแบบข้อมูล คุณจะเห็นโครงสร้างที่เหมาะสม:
{ "message":"accurate", "cod":"200", "count":1, "list":[ { "id":3096472, "name":"Katowice", "coord":{ "lat":50.2599, "lon":19.0216 }, "main":{ "temp":281.69, "pressure":1031, "humidity":61, "temp_min":281.15, "temp_max":282.15 }, "dt":1542285000, "wind":{ "speed":3.6, "deg":50 }, "sys":{ "country":"PL" }, "rain":null, "snow":null, "clouds":{ "all":90 },
- คำตอบจาก API เป็นโครงสร้างข้อมูลที่มีข้อมูลเกี่ยวกับสภาพอากาศในปัจจุบัน คุณควรถอดรหัสพารามิเตอร์ส่วนใหญ่ได้อย่างง่ายดาย รูปแบบข้อมูลนี้เรียกว่า JSON นี่เป็นสัญกรณ์ที่สำคัญเนื่องจาก API สมัยใหม่ส่วนใหญ่ใช้ ข้อมูลประจำตัวและวงเล็บจำนวนมากนี้มีจุดประสงค์เดียว — แอปพลิเคชันแยกวิเคราะห์ข้อความที่มีโครงสร้างดีได้ง่ายกว่าการสุ่มข้อความ
คำอธิบายสิ่งที่เราเพิ่งทำที่นี่
เว็บแอปพลิเคชันที่อยู่เบื้องหลังเว็บไซต์ Open Weather Map นำข้อมูลจาก API และแสดงบนเว็บไซต์
ทุกครั้งที่คุณพิมพ์ชื่อเมืองและกด ค้นหา เว็บไซต์จะเชื่อมต่อกับเซิร์ฟเวอร์ที่มีลิงก์เฉพาะซึ่งรวมถึงชื่อเมืองเป็นพารามิเตอร์
ประโยคเดียวกันในศัพท์แสงทางเทคนิค: แอปพลิเคชันที่อยู่เบื้องหลังเว็บไซต์ส่ง คำขอ ไปยัง ปลายทาง API โดยระบุชื่อเมืองเป็น อาร์กิวเมนต์
จากนั้น API ตอบกลับ (ส่งการ ตอบกลับ API ) ด้วยข้อความที่จัดรูปแบบเป็น JSON
ในการสร้างคำขอ API คุณต้องรวบรวมที่อยู่ ใช่ ที่อยู่เป็นการเปรียบเทียบที่ดี ในการจัดส่งสินค้า คุณจะต้องจัดเตรียมสิ่งต่อไปนี้ให้ผู้จัดส่ง:
- เมือง,
- ถนนและหมายเลข
- บางครั้งมีข้อมูลเพิ่มเติมเกี่ยวกับการเดินทางไปสำนักงานของคุณ
และในการเชื่อมต่อกับ API โดยการเปรียบเทียบ คุณจะต้อง:
-
https://openweathermap.org/
(ลิงก์) เมืองหรือจุดปลายราก — จุดเริ่มต้น ที่อยู่อินเทอร์เน็ตของเซิร์ฟเวอร์ที่คุณต้องการเชื่อมต่อ ในกรณีของเรา -
data/2.5/find
(ลิงค์) หมายเลขถนนหรือเส้นทาง — กำหนดทรัพยากรที่คุณต้องการรับจาก API - ?callback=jQuery19103887954878001505 1542285819413&q=Katowice&type=like&sort=population&cnt=30&appid=b6907d289e10d714a6e88b30761fae22& =1542285819418 (link) ข้อมูลเพิ่มเติมหรือพารามิเตอร์การสืบค้น — ให้เซิร์ฟเวอร์ API รู้ว่าเราต้องการอะไร
นี่คือวิธีการออกแบบ API โดยทั่วไปแล้วจุดปลายรากจะยังคงเหมือนเดิมสำหรับผู้ขายรายเดียว จากนั้นคุณต้องค้นหาว่าพารามิเตอร์เส้นทางและการค้นหาใดบ้างที่พร้อมใช้งาน และข้อมูลที่ทีมพัฒนา API วางไว้เบื้องหลัง
ทีนี้มาใส่หมวกแฮ็กเกอร์ให้แน่นกว่านี้หน่อย ในกรณีของเรา ไม่จำเป็นต้องใช้พารามิเตอร์การค้นหาทั้งหมด เพื่อรับข้อมูลสภาพอากาศ ลองลบพารามิเตอร์ต่างๆ หลังเครื่องหมายคำถาม ( ?
) และตรวจสอบว่า Weather API ตอบกลับอย่างไร
ตัวอย่างเช่น คุณสามารถเริ่มต้นด้วยการลบการ callback
ออกจากลิงก์คำขอ:
https://openweathermap.org/data/2.5/find?callback=jQuery19103887954878001505_1542285819413&q=Katowice&type=like&sort=population&cnt=30&appid=b6907d289e10d714a6e88b30761fae22&_=1542285819418
ผลลัพธ์:
https://openweathermap.org/data/2.5/find?q=Katowice&type=like&sort=population&cnt=30&appid=b6907d289e10d714a6e88b30761fae22&_=1542285819418
หากคุณลองเล่นกับคนอื่น ๆ คุณจะเห็นว่าบางอันก็เป็นตัวเลือกเช่นกัน ที่จริงแล้วบังคับเฉพาะ q
และ appid
:
https://openweathermap.org/data/2.5/find?q=Katowice&appid=b6907d289e10d714a6e88b30761fae22
คุณรู้ได้อย่างไรว่าสิ่งใดจำเป็นและสิ่งใดเป็นทางเลือก? คุณรู้ได้อย่างไรว่าจะได้รับรูทปลายทางและเส้นทางตั้งแต่แรกได้อย่างไร
เอกสารประกอบ API: สิ่งที่ต้องอ่านก่อนเริ่ม
คุณต้อง ตรวจสอบเอกสาร API ก่อน เสมอเพื่อเรียนรู้วิธีสร้างคำขอของคุณในแบบที่ถูกต้อง
ในกรณีของเรา เอกสาร https://openweathermap.org/current จะแสดงตำแหน่งข้อมูลที่มีอยู่ นอกจากนี้ยังอธิบายฟิลด์ข้อมูลการตอบกลับทั้งหมด ดังนั้นคุณจึงสามารถค้นหาข้อมูลที่ API จะตอบกลับได้ก่อนที่คุณจะส่งคำขอด้วยซ้ำ
เอกสาร API ที่ดีมีบทแนะนำการเริ่มต้นอย่างรวดเร็วเกี่ยวกับวิธีสร้างคำของ่ายๆ และย้ายไปยังเนื้อหาขั้นสูง โชคดีที่ Open Weather API มีอยู่แล้ว และเราจะใช้งานตอนนี้
การสร้างการเรียก API ตั้งแต่เริ่มต้น
มาสรุปผลการค้นพบของเรากัน เราได้ส่งคำขอไปยัง API แล้ว เราพบลิงก์ที่ถูกต้องแล้วโดยการดมกลิ่นสิ่งที่ OpenWeatherMap ทำเบื้องหลัง แนวทางนี้เรียกว่าวิศวกรรมย้อนกลับและมักยากหรือทำไม่ได้เลย
นอกจากนี้ ส่วนใหญ่แล้ว ผู้ให้บริการ API จะแบนผู้ใช้จากการใช้ตัวเลือกนี้มากเกินไป นั่นเป็นเหตุผลที่เราควรเรียนรู้วิธี "เรียก" API ตามกฎ (ความหมาย — เอกสารประกอบ)
วิธีหนึ่งในการทำเช่นนี้คือการเข้ารหัส แต่เนื่องจากเราไม่ใช่ผู้เขียนโค้ด ( ยัง! ) เราจะใช้เครื่องมือที่ทำให้สิ่งนี้ง่ายขึ้น ง่ายกว่ามากที่แม้แต่นักพัฒนาซอฟต์แวร์ก็ยังอยู่ภายใต้แถบเครื่องมือ
ตามที่สัญญาไว้ เราจะไม่ออกจากเบราว์เซอร์ แต่เราจำเป็นต้องติดตั้งส่วนขยาย (เฉพาะ Chrome) — บุรุษไปรษณีย์ ปลั๊กอินง่ายๆ นี้จะเปลี่ยนเบราว์เซอร์ของคุณให้เป็นตัวเชื่อมต่อ API
ตกลง ตอนนี้เรามีเครื่องมือแล้ว มาดูเอกสารประกอบกันเพื่อดูว่าเราจะรับสภาพอากาศปัจจุบันสำหรับชื่อเมืองได้อย่างไร https://openweathermap.org/current#name
เอกสารบอกว่าเราควรใช้ปลายทางต่อไปนี้: api.openweathermap.org/data/2.5/weather?q={city name}
เมื่อเราแยกย่อยเราจะได้องค์ประกอบต่อไปนี้:
- Root-endpoint:
api.openweathermap.org
- เส้นทาง:
data/2.5/weather
- พารามิเตอร์การค้นหา:
q={city name}
(แนวคิดนี้หมายความว่าเราควรแทนที่เครื่องหมายปีกกาด้วยชื่อเมืองเฉพาะ)
มาใส่ไว้ในบุรุษไปรษณีย์กันเถอะ กระบวนการเดือดลงไปสามขั้นตอนง่ายๆ:
- คลิก 'ขอ' ในเมนูด้านบน
- ตั้งชื่อคำขอของคุณและระบุชื่อแคตตาล็อกในส่วนด้านล่างด้วย
- วางตำแหน่งข้อมูล API ที่คุณต้องการโทร คลิกส่ง และคุณควรเห็นการตอบกลับ API ในส่วนการตอบกลับ:
ยินดีด้วย! คุณเพิ่งเรียกต้นสนของคุณสำเร็จ… รอสักครู่! ให้ความสนใจกับการตอบสนองของ API:
ไม่ใช่ JSON ที่เต็มไปด้วยข้อมูลสภาพอากาศที่เราเคยเห็นมาก่อน คีย์ 401 และ API ไม่ถูกต้องหมายความว่าอย่างไร เอกสารของเราผิดหรือเปล่า?
การตรวจสอบสิทธิ์
คุณจะไม่ยอมให้ใครเข้าถึงตู้ค็อกเทลของคุณโดยไม่ได้รับอนุญาตใช่ไหม ในทำนองเดียวกัน ผู้ให้บริการ API ยังต้องการควบคุมผู้ใช้ผลิตภัณฑ์ของตนเพื่อป้องกันกิจกรรมที่เป็นอันตราย กิจกรรมที่เป็นอันตรายคืออะไร? ตัวอย่างเช่น การส่งคำขอ API จำนวนมากพร้อมกัน ซึ่งจะทำให้เซิร์ฟเวอร์ "ร้อนเกินไป" และทำให้ผู้ใช้รายอื่นหยุดทำงาน
คุณจะควบคุมการเข้าถึงได้อย่างไร? เช่นเดียวกับที่คุณปกป้องเครื่องดื่มของคุณ! โดยใช้คีย์ — คีย์ API
หากคุณเข้าไปที่คู่มือ How to start จากเอกสารประกอบของ Weather API คุณจะสังเกตเห็นวิธีรับกุญแจของคุณ ลงทะเบียนตอนนี้และตรวจสอบกล่องจดหมายของคุณ
ตอนนี้คำถามคือวิธีการใช้กุญแจ? ตามเอกสาร ง่าย ๆ เพียงคัดลอกและวางคีย์ที่ส่วนท้ายของ URL ปลายทางของคุณ (ไม่มีเครื่องหมายวงเล็บปีกกา)
api.openweathermap.org/data/2.5/weather?q=Katowice&appid={your API key}
และกดส่งอีกครั้ง ไปเลย ตอนนี้เราเห็นการตอบสนองของ API แล้ว!
แต่ยังมีอะไรอีกมากมายที่คุณจะได้รับจาก API โดยใช้บุรุษไปรษณีย์ พร้อมที่จะเป็นแฮ็กเกอร์ API ตัวจริงหรือยัง
พารามิเตอร์ API: รับการตอบสนองที่เหมาะสม
โดยปกติ ตำแหน่งข้อมูล API จะมีคุณสมบัติยูทิลิตี้บางอย่างที่คุณสามารถใช้เพื่อปรับการตอบสนองของ API เช่น หากคุณต้องการรูปแบบข้อมูลที่ดีขึ้นหรือคุณต้องการรับข้อมูลตามลำดับเฉพาะ ตัวเลือกเหล่านี้มักจะซ่อนอยู่หลังพารามิเตอร์บางตัวที่คุณพบได้ในเอกสารประกอบ
พารามิเตอร์การค้นหาเป็นเพียงข้อความที่มีโครงสร้างที่คุณเพิ่มที่ที่อยู่ปลายทางด้วยรูปแบบต่อไปนี้:
- เครื่องหมายคำถาม (
?
) หลังเส้นทาง - ชื่อของพารามิเตอร์
- เท่ากับ (
=
) สัญลักษณ์ - ค่าของพารามิเตอร์
- เครื่องหมายและ (
&
) และอื่นๆ ตามด้วยคะแนน 2-4 (ด้วยวิธีนี้ คุณสามารถเพิ่มพารามิเตอร์ได้มากเท่าที่คุณต้องการ)
ใช้คำขอแรกของเราเป็นตัวอย่าง:
https://openweathermap.org/data/2.5/find?q=Katowice&appid=b6907d289e10d714a6e88b30761fae22
หมายเหตุสำคัญ: ลำดับของพารามิเตอร์การค้นหาไม่สำคัญ
?q=Katowice&appid=b6907d289e10d714a6e88b30761fae22
ข้างต้นจะเหมือนกับต่อไปนี้:
?appid=b6907d289e10d714a6e88b30761fae22&q=Katowice
ดังที่กล่าวไว้ พารามิเตอร์การค้นหามีการอธิบายไว้ในเอกสาร API ข้อความที่ตัดตอนมาจากเอกสาร weather API ต่อไปนี้จะแสดงวิธีรับอุณหภูมิในหน่วยต่างๆ (อิมพีเรียลหรือเมตริก):
ลองส่งสองตัวเลือกนี้กับบุรุษไปรษณีย์เพื่อดูความแตกต่างในผลลัพธ์ อย่าลืมเพิ่มคีย์ API ของคุณที่ส่วนท้ายของที่อยู่ปลายทาง
หมายเหตุ : ใช้เวลาพอสมควรในการศึกษาเอกสารประกอบและค้นหาพารามิเตอร์ ซึ่งสามารถช่วยคุณหรือทีมพัฒนาของคุณประหยัดเวลาได้
ตัวเลือกคำขอ API: วิธีส่งข้อมูลไปยัง API
จนถึงตอนนี้ เราได้รับข้อมูลจาก API จะเป็นอย่างไรถ้าเราต้องการเพิ่มหรือแก้ไขข้อมูลในฐานข้อมูลที่อยู่เบื้องหลัง API วิธีการขอคือคำตอบ
มาดูบุรุษไปรษณีย์กันอีกครั้ง คุณอาจสังเกตเห็นป้ายกำกับ GET ตัวพิมพ์ใหญ่ถัดจากที่อยู่ปลายทางของ API นี่แสดงถึงหนึ่งในสี่วิธีการขอ GET
หมายความว่าเราต้องการรับบางอย่างจาก API (ขอบคุณกัปตัน) และเป็นตัวเลือกเริ่มต้น อะไรคือตัวเลือกอื่น ๆ ?
ชื่อเมธอด | มันทำอะไรกับ API |
---|---|
GET | API จะค้นหาข้อมูลที่คุณร้องขอและส่งกลับมาให้คุณ |
POST | API จะสร้างรายการใหม่ในฐานข้อมูลและบอกคุณว่าการสร้างสำเร็จหรือไม่ |
PUT | API จะอัปเดตรายการในฐานข้อมูลและบอกคุณว่าการอัปเดตสำเร็จหรือไม่ |
DELETE | API ลบรายการในฐานข้อมูลและบอกคุณว่าการลบสำเร็จหรือไม่ |
ยังสับสน? มาดูตัวอย่างกัน
API POST: วิธีสร้างบันทึกใน API
เราไม่สามารถสร้างหรืออัปเดตสิ่งใด ๆ ด้วย Weather API (เพราะมันมีไว้เพื่อให้อ่านอย่างเดียว) ดังนั้นเราจึงต้องหาอันอื่นเพื่อการทดสอบ
มากับตัวอย่างเชิงธุรกิจกันดีกว่า เราจะจำลองสถานการณ์ต่อไปนี้:
หากฝนตก ให้สร้างคูปองส่วนลด "เชียร์" ให้กับลูกค้าของคุณ
เราจะใช้ Voucherify ซึ่งมี API สำหรับการสร้างและติดตามการส่งเสริมการขายสำหรับระบบอีคอมเมิร์ซใดๆ
ข้อจำกัดความรับผิดชอบ : ฉันเป็นผู้ร่วมก่อตั้ง Voucherify ฉันยินดีที่จะตอบคำถามของคุณเกี่ยวกับการออกแบบและการนำโปรโมชันดิจิทัลไปใช้ และแน่นอนว่าเกี่ยวกับ API ของ เรา
เรารู้วิธีรับจากตัวอย่างก่อนหน้านี้แล้ว มาเน้นที่การสร้างบัตรกำนัลกัน:
- ดังที่เราได้กล่าวไปแล้ว เราควรเริ่มต้นด้วยเอกสารประกอบ
- คู่มือเริ่มต้นใช้งานฉบับย่อบอกให้เรารับคีย์ API
หมายเหตุ : แทนที่จะสร้างบัญชี คุณสามารถใช้คีย์ทดสอบจากคู่มือเริ่มต้นฉบับย่อ — เราจะแสดงให้คุณเห็นว่าในไม่กี่นาที - ตอนนี้ มาดูวิธีสร้างคูปองส่วนลดกัน ใน Voucherify โปรโมชันประเภทนี้จะแสดงเป็น "บัตรกำนัล"
- จากเอกสาร คุณจะได้เรียนรู้ว่าในการสร้างบัตรกำนัล คุณจะต้องเรียกวิธี POST ไปยัง
/vouchers
endpoint - สร้างคำขอใหม่ในบุรุษไปรษณีย์
- เปลี่ยนวิธีการเป็น POST
- วางจุดสิ้นสุด Voucherify
https://api.voucherify.io/v1/vouchers/
แล้วคลิกส่ง - แย่จัง เราไม่ได้รับอนุญาตให้เรียกปลายทางนี้ อย่างที่คุณอาจเดาได้ เราจำเป็นต้องจัดเตรียมคีย์ API
Voucherify มีวิธีการที่แตกต่างกันเล็กน้อย แทนที่จะใส่เป็นพารามิเตอร์การค้นหา คุณควรใส่ไว้ในส่วนหัว นี่เป็นแนวทางทั่วไปเนื่องจากง่ายต่อการใช้งานและบำรุงรักษาคีย์ด้วยวิธีนี้ แทนที่จะผนวกคีย์เหล่านี้เป็นพารามิเตอร์การค้นหา
เพิ่มคีย์ตามภาพแล้วคลิกส่ง ขอให้สังเกตว่า Voucherify ต้องใช้กุญแจสองดอก นี่คือสิ่งที่คุณสามารถใช้เพื่อจุดประสงค์ของบทช่วยสอนนี้:
X-App-Id: 8a824b12-0530-4ef4-9479-d9e9b9930176
X-App-Token: 9e322bac-8297-49f7-94c8-07946724bcbc
- เราได้รับข้อความแสดงข้อผิดพลาดอีกครั้ง คราวนี้มันบอกว่าเพย์โหลดไม่สามารถเว้นว่างได้
อะไรคือสิ่งที่บรรทุกได้? ในกรณีของ GET เราต้องการดึงข้อมูลบางอย่าง ด้วย POST เราจำเป็นต้องส่งบางอย่าง และข้อความที่เราส่งเรียกว่า payload และโดยปกติแล้วจะเป็นไฟล์ JSON
ตอนนี้ Voucherify API กำลังบ่นว่าเราไม่ได้จัดเตรียมให้ ซึ่งหมายความว่าไม่สามารถสร้างบัตรกำนัลได้เนื่องจากเราไม่ได้บอกว่าควรสร้างบัตรกำนัลประเภทใด แล้วตอนนี้ล่ะ? กลับไปที่เอกสาร! - มาดูกันว่าคำขอนี้ต้องการข้อมูลประเภทใดจึงจะสำเร็จ เราเห็นตัวเลือกมากมายในรายการ
จำเป็นต้องมีพารามิเตอร์หนึ่งตัว (ประเภท) และอีกตัวหนึ่งเป็นทางเลือก สมมติว่าจะเป็นส่วนลด 20% สำหรับ 100 คนแรกที่หมดอายุวันนี้ ตอนนี้ เราต้องค้นหาพารามิเตอร์ที่รับผิดชอบคุณลักษณะส่วนลดนี้ และรวมเข้าด้วยกันในรูปแบบที่เข้าใจได้สำหรับ Voucherify API ดังที่คุณเห็นในตัวอย่างด้านบน สัญกรณ์ JSON ที่คุณควรใช้มีลักษณะดังนี้:{ "type":"DISCOUNT_VOUCHER", "discount":{ "percent_off":20.0, "type":"PERCENT" }, "expiration_date":"2018-12-03T23:59:59Z", "redemption":{ "quantity":100 }
- ในการตั้งค่าเพย์โหลดในบุรุษไปรษณีย์ ให้วางข้อความ JSON ลงในแท็บเนื้อหา เลือกประเภท "ดิบ" และ JSON จากรายการรูปแบบเพย์โหลดที่มี และยืนยันด้วยการส่ง
- โว้ว! Voucherify ได้สร้างคูปองส่วนลด 20% ของเราสำเร็จแล้ว (ในขณะที่เรากำลังทำงานกับบัญชีทดสอบ รหัสที่สร้างขึ้นทั้งหมดจะเริ่มต้นด้วยคำนำหน้า "voucherify.io-") ทีมการตลาดสามารถแชร์รหัสกับลูกค้าได้แล้ว Voucherify จะตรวจสอบรหัสโดยอัตโนมัติทุกครั้งที่มาที่ร้านของคุณเพื่อแลกรับ
แต่เราจะรู้ได้อย่างไรว่าเป็นคำขอที่ประสบความสำเร็จ ก่อนอื่น เราจะเห็นได้ว่า Voucherify ได้ส่งข้อความถึงเรา ซึ่งตามเอกสารของพวกเขา ดูเหมือนว่าการตอบกลับ API ที่ถูกต้อง ประการที่สอง บุรุษไปรษณีย์จะแสดงสถานะ 200 ตกลง ซึ่งหมายความว่าคำขอของเราประสบความสำเร็จ ทำไม 200 และสถานะคืออะไร?
รหัสสถานะ API และข้อความแสดงข้อผิดพลาด
API ส่วนใหญ่ที่คุณเคยโต้ตอบด้วยจะใช้ HTTP HTTP เป็นโปรโตคอลที่สร้างมาตรฐานการสื่อสารระหว่างแอปพลิเคชันไคลเอ็นต์และเซิร์ฟเวอร์ต่างๆ บนอินเทอร์เน็ต
องค์ประกอบหลักประการหนึ่งของ HTTP คือรหัสสถานะ เมื่อเข้าใจรหัสสถานะ คุณ (หรือระบบที่คุณใช้จริง) สามารถบอกได้ทันทีว่าเกิดอะไรขึ้นกับคำขอของคุณ โอกาสที่คุณจะต้องเผชิญกับรหัสสถานะที่ได้รับความนิยมมากที่สุดเมื่อคุณพิมพ์ลิงค์ผิด — 404
แต่มีอีกมากมายและผู้ใช้ปลายทางมักจะไม่เห็น มีตั้งแต่ 100+ ถึง 500+ โดยทั่วไป ตัวเลขจะเป็นไปตามกฎต่อไปนี้:
- 200+ หมายถึงคำขอสำเร็จแล้ว
- 300+ หมายถึงคำขอถูกเปลี่ยนเส้นทางไปยัง URL อื่น
- 400+ หมายถึงเกิดข้อผิดพลาดที่เกิดจากแอปพลิเคชันไคลเอนต์
- 500+ หมายถึงเกิดข้อผิดพลาดที่มาจากเซิร์ฟเวอร์ได้เกิดขึ้น
หากคุณสามารถทำตามขั้นตอนต่างๆ ได้อีกครั้ง คุณจะเห็นว่า Voucherify ตอบกลับด้วย 401 Unauthorized เมื่อเราไม่ได้ให้คีย์ API หรือ 400 คำขอไม่ถูกต้องเมื่อไม่มีเพย์โหลดซึ่งจำเป็นสำหรับคำขอสร้างบัตรกำนัล สุดท้าย เราได้รับ 200 เป็นโทเค็นของการเรียก API ที่ประสบความสำเร็จ
หากคุณสงสัยเกี่ยวกับความหมายของรหัสสถานะ HTTP ไม่มีที่ไหนดีไปกว่า HTTP Cats (หรืออาจเป็นบทความนี้)
สรุป
จำนวนข้อมูลที่เพิ่มขึ้นและความต้องการความเร็วในการสร้างผลิตภัณฑ์ได้ผลักดันให้ API กลายเป็นภาษากลางของทีมดิจิทัล ในการออกแบบระบบโดยใช้ระบบ API แรก ต้องแน่ใจว่าคุณเข้าใจข้อเสนอของผู้ขาย คู่มือการทดสอบเชิงปฏิบัตินี้เป็นจุดเริ่มต้นที่ดีในการทำเช่นนั้น มันจะช่วยให้คุณสำรวจความสามารถของ API ได้ก่อนที่คุณจะส่งให้ทีมสอนของคุณ ประหยัดพลังงานของพวกเขา - และของคุณเช่นกัน
อ่านเพิ่มเติม
- “บทนำสู่ E-Commerce API สำหรับผู้ที่ไม่ใช่นักพัฒนา” Scott Brinker
- “Go Beyond Headless CMS — พบกับ Headless Commerce” Michal Sedzielewski, Voucherify
- “วิธีใช้แพลตฟอร์ม API แรกเพื่อสร้างเว็บไซต์ของคุณเร็วขึ้น” Michal Sedzielewski, Medium
- “วิธีการใช้แพลตฟอร์ม API แรกของคุณเพื่อให้ต้นแบบของคุณพร้อมสำหรับการผลิต” Michal Sedzielewski, Medium
- “วิธีใช้คลาวด์เพื่อสร้างแอปพลิเคชันให้เร็วขึ้น” Michal Sedzielewski จาก Hacker Noon