การทำความเข้าใจแพลตฟอร์มที่ใช้ API: คู่มือสำหรับผู้จัดการผลิตภัณฑ์

เผยแพร่แล้ว: 2022-03-10
สรุปโดยย่อ ↬ โซลูชัน ที่ใช้ API กำลังกลายเป็นส่วนประกอบสำคัญของผลิตภัณฑ์ดิจิทัลสมัยใหม่ พวกเขาคืออะไร? สิ่งเหล่านี้ส่งผลต่อกระบวนการออกแบบของคุณอย่างไร? สุดท้ายจะประเมินได้อย่างไรโดยไม่รบกวนทีมซอฟต์แวร์ของคุณ

การสร้างผลิตภัณฑ์ดิจิทัลในปัจจุบันคือการผสานรวมระบบแบ็คออฟฟิศที่หลากหลายเข้ากับจุดสัมผัสและอุปกรณ์ของลูกค้า ค่าใช้จ่ายในการมีส่วนร่วมกับทีมซอฟต์แวร์เพื่อเชื่อมต่อพวกเขาในโซลูชันการทำงานเดียวอาจพุ่งสูงขึ้น

นี่คือเหตุผลที่ว่าทำไมผู้จัดการผลิตภัณฑ์สมัยใหม่เมื่อเลือกผู้ขาย มักจะใส่ความสามารถในการผสานรวมเป็นอันดับแรก ซึ่งอาจส่งผลต่อการเลือกระบบที่เปิดเผย API API คืออะไรและจะทดสอบได้อย่างไรโดยไม่ต้องให้ทีมเทคโนโลยีของคุณมีส่วนร่วม อ่านต่อ.

โอบรับข้อมูล: เหตุใดเราจึงต้องการ API เลย

ข้อมูลลูกค้าเปลี่ยนวิธีการดำเนินธุรกิจ หากรวบรวมและย้ายอย่างถูกต้อง พวกเขาสามารถช่วยบริษัทต่างๆ เพิ่มอัตราการได้มาซึ่งลูกค้าและรักษาไว้ ซึ่งนำไปสู่รายได้ที่พุ่งกระฉูดในที่สุด

แต่การประมวลผลข้อมูลเป็นงานที่น่าเบื่อ นั่นเป็นเหตุผลที่ธุรกิจใช้วิทยาการคอมพิวเตอร์ ในปี 1990 ฐานข้อมูลซึ่งทำงานด้านข้อมูลที่ใช้เวลานานที่สุดโดยอัตโนมัติได้กลายเป็นที่นิยมอย่างมากในแผนกการตลาด สิ่งนี้นำไปสู่การเปลี่ยนแปลงครั้งใหญ่ในการกำหนดกลยุทธ์ทางการตลาด — การเปลี่ยนแปลงนี้เรียกว่า แนวทางที่ขับเคลื่อนด้วยข้อมูล

ฐานข้อมูลมีข้อเสียที่สำคัญแม้ว่า บริษัทจำเป็นต้องจ้างวิศวกรซอฟต์แวร์เพื่อสร้างคุณค่าให้พวกเขา พวกเขาเป็นฮีโร่ที่รู้วิธีเปลี่ยนข้อมูลจำนวนมหาศาลให้เป็นข้อมูลเชิงลึกในการทำงาน พวกเขายังเป็นผู้พิทักษ์ปกป้องความสมบูรณ์ของข้อมูลและทำให้แน่ใจว่าระบบนั้นรองรับอนาคต

แต่วิศวกรซอฟต์แวร์มีค่าใช้จ่ายมากมาย และอินเทอร์เฟซการสื่อสารของพวกเขาก็ต้องใช้ความพยายามอย่างมาก

เมื่อจำนวนช่องทางการเก็บรวบรวมข้อมูลครอบคลุมหลายแผนกและแม้แต่บริษัทภายนอก ฐานข้อมูลและผู้ให้บริการก็กลายเป็นคอขวด ธุรกิจจำเป็นต้องหาวิธีอัตโนมัติในการเข้าถึงที่เก็บข้อมูล

นี่คือที่มาของแนวคิดของระบบที่เน้น API เป็นหลัก

เพิ่มเติมหลังกระโดด! อ่านต่อด้านล่าง↓

API คืออะไรโดยไม่มี Tech Lingo

ระบบ API แรกซึ่งปัจจุบันย่อให้สั้นลงเป็น API ( A pplication P rogrammable I nterface) เป็นแอปพลิเคชันที่รับรองว่าระบบอื่นๆ สามารถเข้าถึงข้อมูลได้ในลักษณะที่เป็นหนึ่งเดียวและปลอดภัย

หากไม่มีเกรดวิทยาการคอมพิวเตอร์ Application Programmable Interface จะไม่ส่งเสียงกริ่ง มาดูคำอธิบายที่เป็นรูปธรรมมากขึ้นกัน

หนึ่งในการเปรียบเทียบที่ดีที่สุดที่ฉันเคยพบในเว็บเขียนโดย Taija:

“ถ้าคุณไปร้านอาหารในฐานะลูกค้า คุณจะไม่ได้รับอนุญาตให้เข้าครัว คุณต้องรู้ว่ามีอะไรบ้าง เพื่อที่คุณจะได้มีเมนู หลังจากดูเมนูแล้ว คุณสั่งพนักงานเสิร์ฟที่ส่งต่อไปที่ครัวและใครจะเป็นคนส่งในสิ่งที่คุณขอ บริกรสามารถส่งมอบได้เฉพาะในครัวเท่านั้น
สิ่งนี้เกี่ยวข้องกับ API อย่างไร พนักงานเสิร์ฟคือ API คุณเป็นคนที่ขอใช้บริการ กล่าวคือ คุณเป็นลูกค้าหรือผู้บริโภค API เมนูนี้เป็นเอกสารที่อธิบายสิ่งที่คุณขอได้จาก API ห้องครัวเป็นเช่นเซิร์ฟเวอร์ ฐานข้อมูลที่มีเพียงข้อมูลบางประเภท ไม่ว่าผู้ซื้อจะซื้ออะไรให้ร้านอาหารเป็นส่วนผสม และสิ่งที่เชฟตัดสินใจว่าจะนำเสนอ และสิ่งที่พ่อครัวรู้วิธีเตรียมอาหาร”

ดังนั้นอีกครั้ง:

  • ครัว
    ฐานข้อมูลลูกค้าไม่ได้รับอนุญาตให้ปกป้องความสมบูรณ์ของข้อมูล
  • บริกร
    API ซึ่งเป็นพ่อค้าคนกลางที่รู้วิธีให้บริการข้อมูลจากฐานข้อมูลโดยไม่รบกวนการทำงานของฐานข้อมูล
  • ลูกค้า
    ระบบภายนอกที่ต้องการรับข้อมูล
  • เมนู
    รูปแบบข้อมูลอ้างอิงที่ระบบภายนอกต้องใช้เพื่อดำเนินการ
  • คำสั่ง
    การเรียก API เดียวที่เกิดขึ้นจริง

ด้วยสถานะของเทคโนโลยีในปัจจุบัน นักพัฒนาซอฟต์แวร์ยังคงต้อง “ทำการสั่งซื้อ” แต่มันเร็วกว่ามาก (อ่านว่า ถูกกว่า) เพราะเมนูอย่างแมคโดนัลด์นั้นได้มาตรฐานทั่วโลกไม่มากก็น้อย

ตอนนี้เรากำลังจะสวมรองเท้าของนักพัฒนาซอฟต์แวร์และพยายามเรียก API ที่เป็นแบบอย่าง ไม่ต้องกังวล เราจะไม่ไปไกลกว่าชั้นเรียนวิทยาการคอมพิวเตอร์ของโรงเรียน

แอป Weather ของคุณรับข้อมูลอย่างไร: ข้อมูลเบื้องต้นเกี่ยวกับ API

เราจะมาดูกันว่าแอพพยากรณ์อากาศของคุณรู้อุณหภูมิปัจจุบันได้อย่างไร ด้วยวิธีนี้ เราจะได้รับข้อมูลพื้นฐานเกี่ยวกับวิธีการสื่อสารกับระบบผ่านทางอินเทอร์เน็ต

สิ่งที่เราต้องการ:

  • ฐานข้อมูลสภาพอากาศ
  • เบราว์เซอร์
  • พลังแห่งความมุ่งมั่น

แค่นั้นแหละ! เทคโนโลยีในปัจจุบันทำให้ง่ายต่อการทดสอบ API โดยไม่ต้องใช้เครื่องมือสำหรับนักพัฒนารายใหญ่

แน่นอนว่ามันแตกต่างออกไปเมื่อคุณต้องการสร้างการบูรณาการแบบครบวงจร เมื่อต้องเผชิญแรงกดดัน คุณจำเป็นต้องรู้เครื่องมือขั้นสูงและภาษาการเขียนโปรแกรม แต่สำหรับการทดสอบ/การพิสูจน์แนวคิด การตั้งค่านี้ก็เพียงพอแล้ว

ลองรับดัชนีอุณหภูมิปัจจุบันสำหรับเมืองของคุณ หรือเรียกโปรแกรมเรียก API ครั้งแรก ท้ายที่สุด การส่งข้อความไปยังเซิร์ฟเวอร์และรับข้อความเป็นการแลก เปลี่ย

กายวิภาคของคำขอ API

ในบทความนี้ เราจะใช้ https://openweathermap.org API เยี่ยมชมไซต์และลองตรวจสอบสภาพอากาศในสถานที่ต่างๆ หวังว่าคุณจะรู้สึกดีขึ้นกว่าฉันใน Katowice วันนี้:

เปิดวิดเจ็ต API แผนที่สภาพอากาศ
เปิดวิดเจ็ต Weather Map API (ตัวอย่างขนาดใหญ่)

ตามที่คุณอาจเดาได้ เว็บไซต์กำลังเรียก API เพื่อรับข้อมูล นักพัฒนาใช้งานในลักษณะที่ทุกครั้งที่คุณกด ค้นหา เบื้องหลังแอปพลิเคชันจะเคาะประตู API และบอกว่า "ให้อุณหภูมิ <เมือง> แก่ฉัน"

สวมหมวกแฮ็กเกอร์และดูการเรียก API ที่เว็บไซต์นี้เรียกใช้ด้วยเบราว์เซอร์ของคุณ คุณสามารถใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ในเบราว์เซอร์ของคุณเพื่อดูว่าเกิดอะไรขึ้นเบื้องหลัง:

  1. ใน Chrome ไปที่ Menu → More tools → Developer Tools;
  2. สลับไปที่แท็บเครือข่าย
  3. ลองตรวจสอบอุณหภูมิในเมืองต่างๆ ในวิดเจ็ตด้านบน
  4. ในรายการด้านล่าง คุณจะสังเกตเห็นลิงก์ที่เรียกว่า:
    คำขอตรวจสอบในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Chrome
    ตรวจสอบคำขอในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Chrome (ตัวอย่างขนาดใหญ่)

    หากคุณคัดลอกลิงก์ คุณจะเห็นว่ามีชื่อสถานที่และพารามิเตอร์อื่นๆ สองสามตัว
     https://openweathermap.org/data/2.5/find?callback=jQuery19103887954878001505_1542285819413&q=Katowice&type=like&sort=population&cnt=30&appid=b6907d289e10d714a6e88b30761fae22&_=1542285819418
  5. เมื่อคุณวางลิงก์ลงในแถบที่อยู่ของเบราว์เซอร์ คุณควรเห็นการตอบกลับ 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"}]}]})
  6. ค่อนข้างจะวุ่นวาย แต่ถ้าคุณเอาเนื้อหาของวงเล็บออกแล้วเรียกใช้ด้วยตัวจัดรูปแบบข้อมูล คุณจะเห็นโครงสร้างที่เหมาะสม:
     { "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 },
  7. คำตอบจาก API เป็นโครงสร้างข้อมูลที่มีข้อมูลเกี่ยวกับสภาพอากาศในปัจจุบัน คุณควรถอดรหัสพารามิเตอร์ส่วนใหญ่ได้อย่างง่ายดาย รูปแบบข้อมูลนี้เรียกว่า JSON นี่เป็นสัญกรณ์ที่สำคัญเนื่องจาก API สมัยใหม่ส่วนใหญ่ใช้ ข้อมูลประจำตัวและวงเล็บจำนวนมากนี้มีจุดประสงค์เดียว — แอปพลิเคชันแยกวิเคราะห์ข้อความที่มีโครงสร้างดีได้ง่ายกว่าการสุ่มข้อความ

คำอธิบายสิ่งที่เราเพิ่งทำที่นี่

เว็บแอปพลิเคชันที่อยู่เบื้องหลังเว็บไซต์ Open Weather Map นำข้อมูลจาก API และแสดงบนเว็บไซต์

ทุกครั้งที่คุณพิมพ์ชื่อเมืองและกด ค้นหา เว็บไซต์จะเชื่อมต่อกับเซิร์ฟเวอร์ที่มีลิงก์เฉพาะซึ่งรวมถึงชื่อเมืองเป็นพารามิเตอร์

ประโยคเดียวกันในศัพท์แสงทางเทคนิค: แอปพลิเคชันที่อยู่เบื้องหลังเว็บไซต์ส่ง คำขอ ไปยัง ปลายทาง API โดยระบุชื่อเมืองเป็น อาร์กิวเมนต์

จากนั้น API ตอบกลับ (ส่งการ ตอบกลับ API ) ด้วยข้อความที่จัดรูปแบบเป็น JSON

Webapp - ไดอะแกรมฐานข้อมูล
Webapp <—> ไดอะแกรมฐานข้อมูล (ตัวอย่างขนาดใหญ่)

ในการสร้างคำขอ 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} (แนวคิดนี้หมายความว่าเราควรแทนที่เครื่องหมายปีกกาด้วยชื่อเมืองเฉพาะ)

มาใส่ไว้ในบุรุษไปรษณีย์กันเถอะ กระบวนการเดือดลงไปสามขั้นตอนง่ายๆ:

  1. คลิก 'ขอ' ในเมนูด้านบน
    บุรุษไปรษณีย์ มุมมองคำขอใหม่
    มุมมองคำขอใหม่ของบุรุษไปรษณีย์ (ตัวอย่างขนาดใหญ่)
  2. ตั้งชื่อคำขอของคุณและระบุชื่อแคตตาล็อกในส่วนด้านล่างด้วย
    บุรุษไปรษณีย์ขอดูชื่อ
    ดูชื่อขอบุรุษไปรษณีย์ (ตัวอย่างขนาดใหญ่)
  3. วางตำแหน่งข้อมูล 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 แล้ว!

การตอบสนองที่ประสบความสำเร็จจาก Open Weather Map API
การตอบสนองที่ประสบความสำเร็จจาก Open Weather Map API (ตัวอย่างขนาดใหญ่)

แต่ยังมีอะไรอีกมากมายที่คุณจะได้รับจาก API โดยใช้บุรุษไปรษณีย์ พร้อมที่จะเป็นแฮ็กเกอร์ API ตัวจริงหรือยัง

พารามิเตอร์ API: รับการตอบสนองที่เหมาะสม

โดยปกติ ตำแหน่งข้อมูล API จะมีคุณสมบัติยูทิลิตี้บางอย่างที่คุณสามารถใช้เพื่อปรับการตอบสนองของ API เช่น หากคุณต้องการรูปแบบข้อมูลที่ดีขึ้นหรือคุณต้องการรับข้อมูลตามลำดับเฉพาะ ตัวเลือกเหล่านี้มักจะซ่อนอยู่หลังพารามิเตอร์บางตัวที่คุณพบได้ในเอกสารประกอบ

พารามิเตอร์การค้นหาเป็นเพียงข้อความที่มีโครงสร้างที่คุณเพิ่มที่ที่อยู่ปลายทางด้วยรูปแบบต่อไปนี้:

  1. เครื่องหมายคำถาม ( ? ) หลังเส้นทาง
  2. ชื่อของพารามิเตอร์
  3. เท่ากับ ( = ) สัญลักษณ์
  4. ค่าของพารามิเตอร์
  5. เครื่องหมายและ ( & ) และอื่นๆ ตามด้วยคะแนน 2-4 (ด้วยวิธีนี้ คุณสามารถเพิ่มพารามิเตอร์ได้มากเท่าที่คุณต้องการ)

ใช้คำขอแรกของเราเป็นตัวอย่าง:

 https://openweathermap.org/data/2.5/find?q=Katowice&appid=b6907d289e10d714a6e88b30761fae22

หมายเหตุสำคัญ: ลำดับของพารามิเตอร์การค้นหาไม่สำคัญ

 ?q=Katowice&appid=b6907d289e10d714a6e88b30761fae22

ข้างต้นจะเหมือนกับต่อไปนี้:

 ?appid=b6907d289e10d714a6e88b30761fae22&q=Katowice

ดังที่กล่าวไว้ พารามิเตอร์การค้นหามีการอธิบายไว้ในเอกสาร API ข้อความที่ตัดตอนมาจากเอกสาร weather API ต่อไปนี้จะแสดงวิธีรับอุณหภูมิในหน่วยต่างๆ (อิมพีเรียลหรือเมตริก):

เอกสารประกอบ OpenWeatherMap API ที่ตัดตอนมา
ข้อความที่ตัดตอนมาของเอกสาร OpenWeatherMap 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 ของ เรา

เรารู้วิธีรับจากตัวอย่างก่อนหน้านี้แล้ว มาเน้นที่การสร้างบัตรกำนัลกัน:

  1. ดังที่เราได้กล่าวไปแล้ว เราควรเริ่มต้นด้วยเอกสารประกอบ
  2. คู่มือเริ่มต้นใช้งานฉบับย่อบอกให้เรารับคีย์ API
    หมายเหตุ : แทนที่จะสร้างบัญชี คุณสามารถใช้คีย์ทดสอบจากคู่มือเริ่มต้นฉบับย่อ — เราจะแสดงให้คุณเห็นว่าในไม่กี่นาที
  3. ตอนนี้ มาดูวิธีสร้างคูปองส่วนลดกัน ใน Voucherify โปรโมชันประเภทนี้จะแสดงเป็น "บัตรกำนัล"
  4. จากเอกสาร คุณจะได้เรียนรู้ว่าในการสร้างบัตรกำนัล คุณจะต้องเรียกวิธี POST ไปยัง /vouchers endpoint
  5. สร้างคำขอใหม่ในบุรุษไปรษณีย์
  6. เปลี่ยนวิธีการเป็น POST
    บุรุษไปรษณีย์ - การเลือกวิธีการ API
    บุรุษไปรษณีย์ - การเลือกวิธีการ API (ตัวอย่างขนาดใหญ่)
  7. วางจุดสิ้นสุด Voucherify https://api.voucherify.io/v1/vouchers/ แล้วคลิกส่ง
    ไม่มีข้อมูลประจำตัว
    ไม่มีข้อมูลรับรอง (ตัวอย่างขนาดใหญ่)
  8. แย่จัง เราไม่ได้รับอนุญาตให้เรียกปลายทางนี้ อย่างที่คุณอาจเดาได้ เราจำเป็นต้องจัดเตรียมคีย์ API

    Voucherify มีวิธีการที่แตกต่างกันเล็กน้อย แทนที่จะใส่เป็นพารามิเตอร์การค้นหา คุณควรใส่ไว้ในส่วนหัว นี่เป็นแนวทางทั่วไปเนื่องจากง่ายต่อการใช้งานและบำรุงรักษาคีย์ด้วยวิธีนี้ แทนที่จะผนวกคีย์เหล่านี้เป็นพารามิเตอร์การค้นหา

    เพิ่มคีย์ตามภาพแล้วคลิกส่ง ขอให้สังเกตว่า Voucherify ต้องใช้กุญแจสองดอก นี่คือสิ่งที่คุณสามารถใช้เพื่อจุดประสงค์ของบทช่วยสอนนี้:
    X-App-Id: 8a824b12-0530-4ef4-9479-d9e9b9930176 X-App-Token: 9e322bac-8297-49f7-94c8-07946724bcbc
    จัดหาคีย์ API ในบุรุษไปรษณีย์
    ระบุคีย์ API ในบุรุษไปรษณีย์ (ตัวอย่างขนาดใหญ่)
  9. เราได้รับข้อความแสดงข้อผิดพลาดอีกครั้ง คราวนี้มันบอกว่าเพย์โหลดไม่สามารถเว้นว่างได้
    Voucherify API ส่งคืนรหัสข้อผิดพลาด 400
    Voucherify API ส่งคืนรหัสข้อผิดพลาด 400 (ตัวอย่างขนาดใหญ่)

    อะไรคือสิ่งที่บรรทุกได้? ในกรณีของ GET เราต้องการดึงข้อมูลบางอย่าง ด้วย POST เราจำเป็นต้องส่งบางอย่าง และข้อความที่เราส่งเรียกว่า payload และโดยปกติแล้วจะเป็นไฟล์ JSON

    ตอนนี้ Voucherify API กำลังบ่นว่าเราไม่ได้จัดเตรียมให้ ซึ่งหมายความว่าไม่สามารถสร้างบัตรกำนัลได้เนื่องจากเราไม่ได้บอกว่าควรสร้างบัตรกำนัลประเภทใด แล้วตอนนี้ล่ะ? กลับไปที่เอกสาร!
  10. มาดูกันว่าคำขอนี้ต้องการข้อมูลประเภทใดจึงจะสำเร็จ เราเห็นตัวเลือกมากมายในรายการ
    Voucherify เอกสารประกอบ API ที่ตัดตอนมา
    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 }
  11. ในการตั้งค่าเพย์โหลดในบุรุษไปรษณีย์ ให้วางข้อความ JSON ลงในแท็บเนื้อหา เลือกประเภท "ดิบ" และ JSON จากรายการรูปแบบเพย์โหลดที่มี และยืนยันด้วยการส่ง
    วิธี POST ในบุรุษไปรษณีย์
    วิธี POST ในบุรุษไปรษณีย์ (ตัวอย่างขนาดใหญ่)
  12. โว้ว! Voucherify ได้สร้างคูปองส่วนลด 20% ของเราสำเร็จแล้ว (ในขณะที่เรากำลังทำงานกับบัญชีทดสอบ รหัสที่สร้างขึ้นทั้งหมดจะเริ่มต้นด้วยคำนำหน้า "voucherify.io-") ทีมการตลาดสามารถแชร์รหัสกับลูกค้าได้แล้ว Voucherify จะตรวจสอบรหัสโดยอัตโนมัติทุกครั้งที่มาที่ร้านของคุณเพื่อแลกรับ
    Voucherify คืน 200 OK
    Voucherify ส่งคืน 200 OK (ตัวอย่างขนาดใหญ่)

    แต่เราจะรู้ได้อย่างไรว่าเป็นคำขอที่ประสบความสำเร็จ ก่อนอื่น เราจะเห็นได้ว่า Voucherify ได้ส่งข้อความถึงเรา ซึ่งตามเอกสารของพวกเขา ดูเหมือนว่าการตอบกลับ API ที่ถูกต้อง ประการที่สอง บุรุษไปรษณีย์จะแสดงสถานะ 200 ตกลง ซึ่งหมายความว่าคำขอของเราประสบความสำเร็จ ทำไม 200 และสถานะคืออะไร?

รหัสสถานะ API และข้อความแสดงข้อผิดพลาด

API ส่วนใหญ่ที่คุณเคยโต้ตอบด้วยจะใช้ HTTP HTTP เป็นโปรโตคอลที่สร้างมาตรฐานการสื่อสารระหว่างแอปพลิเคชันไคลเอ็นต์และเซิร์ฟเวอร์ต่างๆ บนอินเทอร์เน็ต

องค์ประกอบหลักประการหนึ่งของ HTTP คือรหัสสถานะ เมื่อเข้าใจรหัสสถานะ คุณ (หรือระบบที่คุณใช้จริง) สามารถบอกได้ทันทีว่าเกิดอะไรขึ้นกับคำขอของคุณ โอกาสที่คุณจะต้องเผชิญกับรหัสสถานะที่ได้รับความนิยมมากที่สุดเมื่อคุณพิมพ์ลิงค์ผิด — 404

รับรองรหัสข้อผิดพลาด 404
รับรองรหัสข้อผิดพลาด 404 (ตัวอย่างขนาดใหญ่)

แต่มีอีกมากมายและผู้ใช้ปลายทางมักจะไม่เห็น มีตั้งแต่ 100+ ถึง 500+ โดยทั่วไป ตัวเลขจะเป็นไปตามกฎต่อไปนี้:

  • 200+ หมายถึงคำขอสำเร็จแล้ว
  • 300+ หมายถึงคำขอถูกเปลี่ยนเส้นทางไปยัง URL อื่น
  • 400+ หมายถึงเกิดข้อผิดพลาดที่เกิดจากแอปพลิเคชันไคลเอนต์
  • 500+ หมายถึงเกิดข้อผิดพลาดที่มาจากเซิร์ฟเวอร์ได้เกิดขึ้น

หากคุณสามารถทำตามขั้นตอนต่างๆ ได้อีกครั้ง คุณจะเห็นว่า Voucherify ตอบกลับด้วย 401 Unauthorized เมื่อเราไม่ได้ให้คีย์ API หรือ 400 คำขอไม่ถูกต้องเมื่อไม่มีเพย์โหลดซึ่งจำเป็นสำหรับคำขอสร้างบัตรกำนัล สุดท้าย เราได้รับ 200 เป็นโทเค็นของการเรียก API ที่ประสบความสำเร็จ

หากคุณสงสัยเกี่ยวกับความหมายของรหัสสถานะ HTTP ไม่มีที่ไหนดีไปกว่า HTTP Cats (หรืออาจเป็นบทความนี้)

HTTP Cats 401 ไม่ได้รับอนุญาต
HTTP Cats 401 (ตัวอย่างขนาดใหญ่)

สรุป

จำนวนข้อมูลที่เพิ่มขึ้นและความต้องการความเร็วในการสร้างผลิตภัณฑ์ได้ผลักดันให้ 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