Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Extending the WordPress REST API

Extending the WordPress REST API

Presented by Jirayu Yingthawornsuk

การเขียน REST route/endpoint เพิ่มเติมจากที่เวิร์ดเพรสเตรียมเอาไว้อยู่แล้ว พร้อมการทำ Authentication ด้วย JWT (JSON Web Token) สำหรับนำเวิร์ดเพรสไปใช้เป็น REST Server สำหรับแอพแบบเต็มตัว

---

Video: https://wordpress.tv/2017/03/28/jirayu-yingthawornsuk-extending-the-wordpress-rest-api/

WordCamp Bangkok

February 18, 2017
Tweet

More Decks by WordCamp Bangkok

Other Decks in Technology

Transcript

  1. $namespace และ $route $namespace เป็นเหมือนสลักแบ่ง API
 $route เป็นเส้นทางคำสั่งของ API ยกตัวอย่าง

    https://tyria.in.th/api/v1/posts api/v1 คือ $namespace
 /posts คือ $route การมี namespace ช่วยให้สร้าง API หลายตัวหรือหลายเวอร์ชันบนโดเมน เดียวกันได้สะดวกขึ้น
  2. $args อาร์กิวเมนต์สำหรับรูทที่เพิ่มใหม่ • methods กำหนด HTTP Method สำหรับรูทที่เพิ่มใหม่ • callback

    ฟังก์ชันที่จะทำงานเมื่อรูทถูกเรียกใช้งาน • permission_callback ฟังก์ชันตรวจสอบสิทธิ์การเข้าถึง • args อาร์กิวเมนต์ที่จะรับมาพร้อมรีเควสท์
  3. คอลแบ็ค api_get_posts() 1. เรียกใช้ฟังก์ชัน api_get_posts() เมื่อมี GET /wc/v1/posts 2. ฟังก์ชันรับ

    $request ที่เป็น WP_REST_Request เข้ามา 3. ฟังก์ชันประมวลผลข้อมูล เก็บข้อมูลลง $data 4. ส่งออพเจ็กท์ WP_REST_Response กลับออกไป
  4. คอลแบ็คที่มี Request Parameter *ไม่รู้ว่าเรียกถูกหรือไม่ ด่าได้แต่อย่าแรง* • หากมีการส่ง Request Parameter เข้า

    มาด้วย สามารถเรียกใช้ได้ผ่าน $request[‘<param>’] • พารามิเตอร์อื่นๆ เช่นจาก $_POST หรือ $_GET ก็เรียกผ่าน $request ได้เช่นกัน
  5. ติดตั้งปลั๊กอิน JWT ดาวน์โหลดและติดตั้ง JWT Authentication for WP REST API https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/

    อย่าลืมตั้งค่าการทำงานของปลั๊กอินตามคำอธิบายของปลั๊กอิน
  6. การขอ Token จากเซิร์ฟเวอร์ ส่ง POST Request ไปยัง 
 /jwt-auth/v1/token พร้อม

    พารามิเตอร์ username และ password หาก Username/Password ถูกต้อง เซิร์ฟเวอร์จะส่งเพย์โหลดกลับมาพร้อม Token