Routing Custom API WordPress REST: Alat yang berkuasa untuk memperluaskan ciri API
Artikel ini meneroka keupayaan penghalaan tersuai API REST WordPress dan menunjukkan cara membuat penyelesaian API yang disesuaikan. Routing Custom menyediakan lebih banyak kawalan berbutir dan berskala daripada menggunakan penghalaan lalai sahaja.
mata teras:
register_rest_route()
untuk menambah laluan tersuai. Anda perlu menentukan ruang nama, laluan penghalaan, dan pelbagai titik akhir yang mengandungi kaedah, fungsi panggilan balik, dan maklumat kebenaran. rest_api_init
Kebanyakan perbincangan mengenai API REST WordPress memberi tumpuan kepada pertanyaan laluan lalai, yang menjadikannya kelihatan seperti API tunggal, seperti API Twitter. Walau bagaimanapun, API REST WordPress bukan API tunggal, tetapi koleksi berjuta -juta API yang sangat disesuaikan yang juga boleh digunakan sebagai alat untuk membina API. Routing lalai adalah penyelesaian kompromi untuk banyak keperluan tapak, dan tidak semua tugas dapat disiapkan dengan penghalaan lalai sahaja.
Sama seperti WordPress bukan sekadar objek WP_Query global, API REST bukan sekadar API lalai. Menggunakan penghalaan lalai adalah seperti tidak pernah membuat objek WP_Query anda sendiri dalam projek WordPress tradisional, atau mengatasi pertanyaan lalai dalam
. Walaupun mungkin, tidak semua kerja boleh dilakukan semata -mata secara lalai routing URL WordPress.
Begitu juga dengan API REST . Ryan McCue, pemaju bersama REST API, menyebut bahawa versi kedua projek dibahagikan kepada dua bahagian: routing lalai dan infrastruktur yang mewujudkan API yang tenang. Routing lalai memberikan contoh yang baik untuk membuat laluan tersuai. pre_get_posts
Tambahkan laluan:
fungsi
register_rest_route()
REST API Edisi Kedua memperkenalkan fungsi baru yang dipanggil yang membolehkan menambah laluan ke API REST dan lulus dalam pelbagai titik akhir. Untuk setiap titik akhir, bukan sahaja ia disediakan untuk mengendalikan permintaan itu, tetapi ia juga boleh menentukan bidang yang diperlukan dalam pertanyaan, termasuk nilai lalai, panggilan balik bersih dan pengesahan, dan panggil balik kebenaran berasingan.
Artikel ini akan memberi tumpuan kepada tiga aspek: fungsi panggil balik, parameter medan, dan pemeriksaan kebenaran. Muat Turun (EDD) -Driven laman web e-dagang.
Tetapkan laluan: ruang nama dan laluan laluan
Apabila menentukan laluan tersuai, gunakan fungsi dalam tindakan rest_api_init
. Fungsi ini menerima empat parameter: register_rest_route()
ruang nama: Semua laluan mesti dinamakan spatialized sebagai segmen URL seterusnya selepas "WP-JSON". Ruang nama laluan lalai ialah . Ruang nama mengelakkan konflik penghalaan. wp
laluan laluan: url selepas ruang nama. Sebagai contoh, "/produk" atau "/produk/(?
Tentukan titik akhir laluan, termasuk kaedah, fungsi panggil balik, parameter, dll.
Parameter (pilihan): nilai boolean untuk mengendalikan konflik dengan laluan yang ditetapkan. Lalai adalah override
, cuba menggabungkan laluan;
false
true
titik akhir perlu menentukan satu atau lebih kaedah pengangkutan HTTP (mendapatkan/pos/put/padam). Kaedah boleh ditakrifkan menggunakan pemalar dalam kelas , seperti
(hanya mendapatkan permintaan dibenarkan) atau (semua kaedah dibenarkan). WP_REST_Server
WP_REST_Server::READABLE
Apabila menentukan medan, anda boleh menentukan nilai lalai medan, membersihkan fungsi panggil balik, dan lain -lain. Ini membolehkan fungsi panggil balik mempercayai data yang diterima. WP_REST_Server::ALLMETHODS
Fungsi panggilan balik dan fungsi panggilan balik balik
Fungsi panggil balik untuk setiap titik akhir (ditentukan dalam kekunci
) adalah kaedah permintaan akan dihantar ke (jika fungsi panggil balik kebenaran berlalu). Fungsi panggil balik kebenaran (ditentukan dalam kekunci ) memeriksa sama ada pengguna semasa mempunyai kebenaran untuk mengakses titik akhir.
memproses dan bertindak balas terhadap permintaan callback
permission_callback
Fungsi callback
, dan boleh menggunakan kaedah untuk mendapatkan parameter yang dibersihkan dan disahkan. Anda boleh menggunakan fungsi untuk membuat objek
untuk memastikan bahawa respons adalah dalam format JSON yang betul dan memasukkan tajuk yang diperlukan.
WP_REST_Request
get_params()
ringkasan: API adat, kemungkinan tanpa had rest_ensure_response()
WP_REST_Response
Atas ialah kandungan terperinci Menambah laluan tersuai ke API REST WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!