\

Facebook


วันพุธที่ 11 มกราคม พ.ศ. 2560

วางทฤษฎีที่เรียนมาเอาไว้ แล้วลองอ่านตรงนี้ดูว่า API ที่ดีควรมีอะไรบ้าง


แค่อยากแชร์ให้ดูว่าการเขียน API ที่ดีนั้นควรทำไงมั้ง เพราะผมก็ทำงานตรงกับ CR ส่วนใหญ่เป็นเราการสร้าง web service เพราะให้ front-end แอปมาคิวรี่เอาข้อมูลไปใช้งานต่อ

วางทฤษฎีที่เรียนมาเอาไว้ แล้วลองอ่านตรงนี้ดูว่า API ที่ดีควรมีอะไรบ้าง

1 Authentication อย่าเพียว เดียวเสียวสันหลัง บอกเลยก็เอา API ขึ้น public ควรมีการใส่รหัส พาส หรือ special charecter ที่ทำให้รู้ว่า call service จากที่ไหน เราจะได้ track ได้ ทั้งเรื่องจำนวนคนใช้ เรียกจาก app ไหน ไม่งั้นดูแลระบบยาก อีกทั้งยังเป็นการป้องกัน hacker ที่จ้องล้วงข้อมูลระดับหนึ่ง

2 Away-On กล่าวคือถึงแม้ API จะแหล่ว(จะพัง) ภายในตัว API เองเกิด error ขึ้นก็ควร return กลับมาได้ทุก request เพราะอะไรนะหรือ เพราะฝั่ง client จะได้รู้ไงว่าตวรตัดสินใจทำอะไรต่อ เช่น บอกผู้ใช้ให้ลองกดใหม่ หรือ บอกให้รีเฟรชเพื่อดูผล เป็นต้น เคยทำงานกับทีมเมกัน แม่ง return Empty string กลับมา ใครจะไปรู้ว่ะ ว่า request นั้น success หรือ fail

3 Suck Data Handler มีแต่พวกกากๆเท่านั้นแหละที่คิดว่าการเรียก API ต้องใส่ตัวแปรที่ถูกต้องเสมอ อย่าลืมว่า requirement เปลี่ยน โค๊ดเปลี่ยน การสร้าง request data ก็ต้องเปลี่ยน เช่น บอกว่า API รับค่าราคาเป็นตัวเลข เเล้วมีความต้องการลูกค้าใหม่เข้ามา ว่าให้รับได้ทุกสกุลเงิน เพราะเริ่มปั้น request ใหม่ให้จาก { "price" : "120" } เป็น { "price" : "120THB"} ตัว api เองต้องรับได้ ถ้ากรอกสกุลเงินผิด ก็ต้องไม่ error 500 ตัวเหลืองเป็นดีซ่าน เคยทำงานกับทีมเมกัน(หรือ สิงค์โปร นี้แหละลืม) มันรับค่า datetime เป็น format แปลกมาก \T20160101992\ เป็นต้น คือทำให้โอกาสพังเยอะมาก เพราะเค้าวาง business logic ของการ convert ไว้ท่ front-end

4 Friendly API ทำอะไรบอกกันด้วย เวลาเรียก Update ข้อมูล ก็ช่วยบอกด้วยว่าสำเร็จไหม ไม่ใช่หายไปเลย เเล้วให้เราคิดไปเอง จะเป็นวิธีไหนก็ได้ เช่น
- HTTP HEADER Status : 200 ok , 500 error , 404 not found
- JSON { "result" : "success" , "receipt" : "pay00001" } เป็นต้น
เอาสักอย่างที่ทำให้งาน front-end ง่ายขึ้น เคยเล่น API คนมาเลย์ เเม่งเรียกฟังชั่นเเล้วหายไปเลย ผมก็งงดิ เรียกซ้ำอีกทีก็เงียบ สุดท้ายเช็คไปเช็คมา ที่ฝั่งนั้น data duplicate เพราะโดน insert ซ้ำๆหลายรอบ เเม่งฮา database ตัวเองยังไม่เช็ค data ก่อนใส่เข้าเรคคอร์ดเลย #กุมขมับ

สี่ข้อพอ ทำได้ก็ถือว่าแข็งเเล้วแหละ

ไม่มีความคิดเห็น:

May be like this posts

  • [WinForm C#] Basic Keyboard Reader
    01/10/2013 - 0 Comments
    Almost of any software which have builded for user's comfortable have special shortcut keys, so today i would…
  • [PHP] วิธีจับ Notice มาเป็น Exception ใน TryCatch
    24/02/2015 - 0 Comments
    ในภาษาพีเฮชพี Notice กับ Warning ไม่ถือเป็น runtime error ครับ ทำให้เวลาเราครอบด้วย try catch…
  • [Skype] Emoticon ใหม่จากหนังเรื่อง Captain America: the winter soldier ลองกันละยัง
    17/04/2014 - 0 Comments
    Emoticon ที่ซ่อนอยู่ของ Skype Skype จะมีอิโมติคอนที่ซ่อนอยู่ซึ่งจะไม่แสดงตรงหน้ากรอก message…
  • เทคนิคง่ายๆในการแสดงข้อมูลประเภทการเงิน การบัญชี ใน SQL SERVER
    01/10/2015 - 0 Comments
    ในเรื่องเงินๆทองๆ หน่วยที่น้อยที่สุดคือ 1 สตางค์ (ทศนิยมสองตำแหน่งจะได้ 0.01) และ SQL SERVER…
  • POSTMAN สุดยอดเครื่องมือทดสอบ API
    13/08/2015 - 0 Comments
    หากต้องสร้าง Web API ขึ้นมาสักตัวนึงไว้ให้ลูกค้าหรือVerdor…
  • วิธีเปิดปิด Backlit Keyboard โน๊ตบุ๊ค DELL
    26/04/2017 - 5 Comments
    Backlit Keyboard คืออะไร สำหรับคีย์บอร์ดโน๊ตบุ้คแบบปกติ ที่แป้นพิมพ์จะมีสติกเกอร์อักษรแปะติดอยู่…
  • จัดระเบียบ SQL Query ให้อ่านง่ายๆสบายตา DEV ด้วย ApexSQL
    07/10/2015 - 0 Comments
    สำหรับท่านที่ต้องใช้งาน MSSMS อยู่เป็นประจำน่าจะเจอปัญหาคล้ายๆกับผมคือ "เวลาแก้ store procedure…