คำถามติดแท็ก rest-api

คำถามเกี่ยวกับ RESTful HTTP API หลักสำหรับการเข้าถึงเนื้อหาและข้อมูล WP

4
Wordpress REST API ติดตั้งและเปิดใช้งานในการติดตั้ง vanilla Wordpress 4.7 หรือไม่
ฉันเพิ่งติดตั้ง Wordpress 4.7 หนึ่งในที่กล่าวถึงในการประกาศก็คือมันมี REST API ความเข้าใจของฉันคือ: ไม่จำเป็นต้องใช้ปลั๊กอิน Wordpress REST API อีกต่อไปเพราะสมมติว่ามันถูกรวมเข้ากับคอร์ใน Wordpress 4.7 แล้ว Wordpress REST API เปิดใช้งานตามค่าเริ่มต้น อย่างไรก็ตามฉันสังเกตเห็นว่าในการติดตั้งวานิลลา Wordpress 4.7 ดูเหมือนว่าจุดสิ้นสุดไม่ทำงาน (ตัวอย่างhttp://examples.com/wp-json/wp/v2/posts) ฉันจะรู้ได้อย่างไรว่า REST API ใหม่เปิดใช้งานจริงหรือไม่ REST API สามารถเปิดใช้งานหรือปิดการใช้งานด้วย vanilla Wordpress UI หรือฉันควรติดตั้งปลั๊กอินของบุคคลที่สามเพื่อทำเช่นนั้น?
29 rest-api 

4
WordPress 4.7.1 REST API ยังคงเปิดเผยผู้ใช้
ฉันได้อัพเกรด WordPress เป็น4.7.1แล้วหลังจากนั้นฉันพยายามระบุผู้ใช้ผ่าน REST API ซึ่งควรแก้ไข แต่ฉันสามารถดึงผู้ใช้ได้ https://mywebsite.com/wp-json/wp/v2/users เอาท์พุท: [{"id":1,"name":"admin","url":"","description":"","link":"https:\/\/mywebsite\/author\/admin\/","slug":"admin","avatar_urls":{"24": ... การเปลี่ยนแปลงจากเวอร์ชั่นล่าสุด: REST API เปิดเผยข้อมูลผู้ใช้สำหรับผู้ใช้ทั้งหมดที่สร้างโพสต์ประเภทโพสต์สาธารณะ WordPress 4.7.1 จำกัด สิ่งนี้เฉพาะโพสต์ประเภทที่ระบุว่าควรจะแสดงใน REST API รายงานโดย Krogsgard และ Chris Jean หลังจากติดตั้งปลั๊กอินDisable REST APIดูเหมือนว่าทุกอย่างทำงานได้ดี แต่ฉันไม่ชอบใช้กับปลั๊กอินเล็ก ๆ น้อย ๆ ทุกอย่าง เอาต์พุตหลังจากใช้ปลั๊กอินคือ: {"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}} ฉันจะแก้ไขปัญหานี้ได้อย่างไรโดยไม่ต้องใช้ปลั๊กอินหรือทำไมถึงแม้หลังจากอัพเกรดสไตล์นี้แล้ว แก้ไข 30.9.2017 ฉันตระหนักว่ามีความขัดแย้งระหว่างcontact 7ปลั๊กอินDisable REST APIและที่จะทำให้คุณมี401 …

1
ด้วย Rest V2 (WP4.7) วิธีใดที่จะ จำกัด กริยา RESTFUL ที่แน่นอน
ฉันตั้งใจที่จะ จำกัด คำกริยา RESTUL ต่อประเภทโพสต์ที่กำหนดเอง ตัวอย่างเช่นเนื่องจากโพสต์ประเภทคำศัพท์ที่กำหนดเองฉันอยากจะบอกว่า: เมทริกซ์การอนุญาต +-------+---+----------+ |index | X | GET | |show | O | GET | |create | X | POST | |update | X | PATCH/PUT| |delete | X | DELETE | +-------+---+----------+ ดูเหมือนว่า V2 จะไม่ให้ระดับการควบคุมนั้น ฉันผ่านแหล่งที่มาและจากสิ่งที่ฉันเห็นไม่มีตะขอ / ตัวกรองใด ๆ ให้แตะเพื่อเปลี่ยนการอนุญาต โซลูชันปัจจุบันของฉันมีดังต่อไปนี้ มันประนีประนอมของชั้นเรียนที่คุณสามารถโหลดในเมทริกซ์ของประเภทโพสต์ที่กำหนดเองกับการกระทำที่ได้รับอนุญาต สิ่งนี้สามารถเรียกได้ในrest_prepare_vocabularyตัวกรองทำลายการตอบสนองหากสิทธิ์ไม่เข้าแถว ปัญหา …

4
วิธีใช้การตรวจสอบสิทธิ์ OAuth กับ REST API ผ่านคำสั่ง CURL
ฉันกำลังพยายามใช้ WordPress Rest Api พร้อมการพิสูจน์ตัวตนเพื่อรับข้อมูลเพิ่มเติมจาก API ฉันได้ติดตั้งปลั๊กอิน Oauth ปลั๊กอิน rest-api และรับข้อมูลรับรอง API จาก WP-CLI ฉันหาวิธีเข้าถึงข้อมูลโดยไม่ได้รับอนุญาต งานนี้: // set our end point $domain = "http://localhost/wp-api"; $endpoint = $domain."/wp-json/wp/v2/posts/"; $curl = curl_init($endpoint); curl_setopt_array($curl, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $endpoint, ]); $response = curl_exec($curl); $decoderesponse = json_decode($response, true); ?> <pre> <?php print_r($decoderesponse); …

6
มีบางสิ่งที่เหมือนกับ is_rest () อยู่หรือไม่
ฉันเริ่มต้นเล็กน้อยกับ REST API หากฉันไม่ได้ทำให้เข้าใจผิดอย่างสมบูรณ์initเบ็ดการดำเนินการจะถูกดำเนินการเมื่อคำขอ REST API ตอนนี้ฉันต้องการรันโค้ดบางอย่างเท่านั้นเมื่อไม่ใช่คำขอ REST API ดังนั้นฉันจึงมองหาคำสั่งis_rest()เพื่อทำสิ่งที่ต้องการ <?php if( ! is_rest() ) echo 'no-rest-request'; ?> แต่ฉันไม่พบสิ่งนี้ มีการis_rest()ออกมีอะไรบ้าง
18 rest-api 

7
REST API มีวัตถุประสงค์อย่างไร?
ก่อนอื่นฉันเข้าใจว่านี่เป็นปลั๊กอินที่จุดปัจจุบัน แต่ส่วนใหญ่แล้วมันก็เกือบจะเป็นส่วนหนึ่งของ WordPress อยู่ดี ดังนั้นฉันหวังว่านี่จะไม่ถูกตั้งค่าสถานะเป็นนอกหัวข้อ ฉันได้อ่านเอกสารอย่างเป็นทางการบทความอื่น ๆ มากมายและดูวิดีโอการสอนแล้ว แต่ฉันยังไม่ได้รับคะแนน .. นี่เป็นอนาคตของ WordPress แน่นอนมันมีประโยชน์มากสำหรับการพัฒนาแอพมือถือและการใช้ / แชร์ข้อมูลระหว่าง ไซต์อื่น แต่: ทำอะไรกับเว็บไซต์ของฉันเท่านั้น พิจารณาสิ่งนี้: ฉันกำลังทำงานกับความคิดเห็น ฉันต้องการส่วนความคิดเห็นในการโหลดเฉพาะเมื่อผู้ใช้เลื่อนไปส่วนความคิดเห็น(กับ -200px ชดเชยเพื่อให้มีความล่าช้าไม่) ฉันจะเรียกการโทร ajax เมื่อผู้ใช้เลื่อนไปที่จุดนั้น Ajax call ส่งข้อมูลบางอย่างเช่นpost_id อื่น ๆ ทำงานWP_Comment_Query()ในเซิร์ฟเวอร์ ส่งJSONข้อมูลกลับไปยังลูกค้าที่มีความสัมพันธ์ความคิดเห็นชื่อเนื้อหาฯลฯ ใช้ JavaScript document.createElement()และinnerHTML อื่น ๆเพื่อสร้างและแสดงความคิดเห็น ตอนนี้ .. ทำไมฉันถึงต้องใช้ REST API แทน อะไรที่ใช้สำหรับฉัน Futureproof แค่ไหน? ฉันยังคงต้องใช้ JavaScript เพื่อการส่งออกข้อมูลทั้งหมดที่ฉันได้รับ …
17 rest-api 

2
วิธีการ: ส่งคำขอตรวจสอบสิทธิ์ JWT ไปยัง Wordpress API
นี่ไม่ใช่คำถาม แต่เป็นแนวทางในการขอการรับรองความถูกต้องกับ Wordpress API โดยใช้ JWT ฉันกำลังเขียนสิ่งนี้เป็นเครื่องเตือนใจฉันและสำหรับผู้ที่อาจต้องการความช่วยเหลือในหัวข้อเดียวกัน

1
คุณเรียกโพสต์ด้วยชื่อกระสุนผ่าน REST API ได้อย่างไร
มันใช้งานได้กับหน้าเว็บของฉัน แต่ไม่ใช่สำหรับโพสต์ของฉัน ถ้าฉันไปที่example.com/wp-json/wp/v2/pages?slug=page-nameมันจะดึงหน้าอย่างถูกต้อง ถ้าฉันไปที่example.com/wp-json/wp/v2/posts?slug=post-nameมันจะไม่ดึงโพสต์ในลักษณะเดียวกัน มีใครช่วยบอกวิธีรับโพสต์ด้วยชื่อกระสุนได้ไหม? โพสต์มีหมวดหมู่ด้วย แต่ฉันไม่รู้ว่ามันจำเป็นหรือวิธีเพิ่มอย่างถูกต้องในแบบสอบถาม เอกสารทั้งหมดที่ฉันได้พบอ้างถึงฟังก์ชั่น [ตัวกรอง] ซึ่งไม่ได้รับการสนับสนุนอีกต่อไป
16 urls  rest-api 

4
ซ่อนจุดสิ้นสุด WordPress REST API v2 จากการดูสาธารณะ
ฉันต้องการเริ่มใช้WordPress REST API v2เพื่อค้นหาข้อมูลจากเว็บไซต์ของฉัน ฉันสังเกตเห็นว่าเมื่อฉันเยี่ยมชม URL ปลายทางโดยตรงฉันสามารถดูข้อมูลทั้งหมดแบบสาธารณะ ฉันเคยเห็นด้วยเช่นกันว่าบทเรียนจำนวนมากพูดถึงการใช้เซิร์ฟเวอร์ทดสอบหรือเซิร์ฟเวอร์ในพื้นที่มากกว่าในเว็บไซต์ คำถามของฉันคือ: สิ่งนี้มีไว้เพื่อใช้กับไซต์ที่ผลิตหรือไม่ มีความเสี่ยงด้านความปลอดภัยหรือไม่ที่จะอนุญาตให้ทุกคนสามารถดูจุดปลายได้เช่น /wp-json/wp/v2/users/ที่แสดงให้ผู้ใช้ทุกคนลงทะเบียนกับเว็บไซต์หรือไม่ เป็นไปได้หรือไม่ที่จะอนุญาตให้ผู้ใช้ที่ได้รับอนุญาตเท่านั้นเข้าถึงจุดปลายได้ ฉันต้องการตรวจสอบให้แน่ใจว่าฉันได้ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับความปลอดภัยดังนั้นเคล็ดลับใด ๆ จะเป็นประโยชน์ เอกสาร APIพูดถึงการตรวจสอบ แต่ผมไม่แน่ใจว่าวิธีการป้องกัน URL จากการเข้าถึงโดยตรง คนอื่น ๆ มักจะตั้งค่าข้อมูลนี้ให้เข้าถึงได้โดยแอปพลิเคชันภายนอกโดยไม่เปิดเผยข้อมูลมากเกินไปหรือไม่
15 http  wp-api  rest-api 

2
พารามิเตอร์ปลายทางที่กำหนดเองของ Wordpress Rest API
เป็นไปได้ไหมที่จะใช้register_rest_route()กับพารามิเตอร์ที่เป็นตัวเลือกใน url สมมติว่าเส้นทางมีการลงทะเบียนด้วยวิธีนี้: register_rest_route( 'api', '/animals/(?P<id>\d+)', [ 'methods' => WP_REST_Server::READABLE, 'callback' => 'get_animals', 'args' => [ 'id' ], ] ); ตอนนี้มันเป็นไปได้ที่จะดำเนินการเรียก API บน URL เช่น/ WP-JSON / API / สัตว์ / 15แต่จะมีวิธีที่จะประกาศพระรามเป็นตัวเลือกที่จะยังจับเส้นทางเช่น/ WP-JSON / API / สัตว์ / ฉันพยายามประกาศเส้นทางเช่นด้านล่าง แต่ไม่ประสบความสำเร็จ: /animals/(?P<id>\d+)? คุณสามารถประกาศเส้นทางอื่นโดยไม่มีพารามิเตอร์หรือใช้ GET params แต่มีวิธีการทำเช่นนี้แล้วในregister_rest_route()? ขอบคุณสำหรับคำแนะนำของคุณ

2
WP Rest API: รายละเอียดของโพสต์ล่าสุดรวมถึง url ของสื่อที่โดดเด่นในคำขอเดียว?
ฉันใช้wp-rest apiเพื่อรับข้อมูลโพสต์ ฉันยังใช้รายการตัวกรอง ap ส่วนที่เหลือ WPเพื่อกรองเขตข้อมูลและสรุปผล: เมื่อฉันเรียกhttp://example.com/wp-json/wp/v2/posts?items=id,title,featured_mediaมันจะให้ผลลัพธ์เช่นนี้ [ { "id": 407, "title": { "rendered": "Title 1" }, "featured_media": 399 }, { "id": 403, "title": { "rendered": "Title 2" }, "featured_media": 401 } ] คำถามคือฉันจะสร้าง URL สื่อที่แนะนำโดยใช้รหัสนี้ได้อย่างไร ตามค่าเริ่มต้นการโทรhttp://example.com/wp-json/wp/v2/media/401จะส่งคืน json ใหม่ซึ่งมีรายละเอียดทั้งหมดเกี่ยวกับ url ที่มีขนาดต่างกันของอิมเมจ: { "id": 401, "date": "2016-06-03T17:29:09", "date_gmt": "2016-06-03T17:29:09", "guid": { …

4
การกรองหลายฟิลด์ที่กำหนดเองด้วย WP REST API 2
ฉันต้องการกรองโพสต์ตามฟิลด์ที่กำหนดเองหลาย ACF ที่มีและความสัมพันธ์ บางสิ่งเช่นนี้ $args = array( 'post_type' => 'product', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'color', 'value' => 'blue', 'compare' => '=', ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN', ), ), ); ฉันอาจมีตัวกรองมากกว่านี้ ฉันจะแปลงเป็นตัวกรอง REST API …

7
WP REST API: กรองตามหมวดหมู่ 1 และหมวด 2
ฉันยุ่งกับ REST API และติดอยู่กับสิ่งนี้: ฉันจะกรองบทความในทั้ง cat1 และ cat2 ได้อย่างไร ในตอนนี้?categories[]=45&categories[]=50ส่งคืนใน ID หมวดหมู่ 45 หรือ 50 ฉันจะได้รับโพสต์ใน 45 และ 50 ได้อย่างไร ขอบคุณล่วงหน้า.

1
ใช้ silex หรือ slim ด้วย wordpress
ฉันใช้ธีมใน WordPress ในชุดรูปแบบนี้ฉันกำลังโทร AJAX ที่ฉันคาดหวังคำตอบ ( http://example.com/capis/v0/packages/ ) ในการให้บริการการโทร http ด้านบนฉันใช้ silex เป็นเซิร์ฟเวอร์ http index.php <?php require_once __DIR__ . '/vendor/autoload.php'; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Silex\Application; $app = new Silex\Application(); $app->POST('/capis/v0/packages/', function(Application $app, Request $request) { # logic return new Response('HELLO'); }); $app->run(); ฉันใช้ php เพื่อรันเซิร์ฟเวอร์บนพอร์ต 8080 ซึ่งให้บริการข้อมูลกับการโทร ajax php …
10 plugins  rest-api 

3
Nonce ที่ดึงมาจาก REST API นั้นไม่ถูกต้องและแตกต่างจาก nonce ที่สร้างใน wp_localize_script
สำหรับผู้ที่เดินทางมาจาก Google: คุณอาจจะไม่ควรจะได้รับขณะปัจจุบันจากส่วนที่เหลือของ APIเว้นแต่คุณจริงๆจะรู้ว่าสิ่งที่คุณทำ รับรองความถูกต้องของคุกกี้ที่ใช้กับ REST API เป็นเพียงความหมายสำหรับปลั๊กอินและธีม สำหรับการใช้งานหน้าเดียวคุณอาจจะใช้OAuth คำถามนี้มีอยู่เนื่องจากเอกสารไม่ได้ / ไม่ชัดเจนว่าคุณควรรับรองความถูกต้องจริงอย่างไรเมื่อสร้างแอปพลิเคชันหน้าเดียว JWT ไม่เหมาะสำหรับเว็บแอปและ OAuth นั้นยากที่จะใช้งานมากกว่าการรับรองความถูกต้องตามคุกกี้ หนังสือคู่มือมีตัวอย่างเกี่ยวกับวิธีที่ไคลเอ็นต์ Backbone JavaScript จัดการค่าคงที่และหากฉันทำตามตัวอย่างฉันจะได้รับ nonce ที่ปลายทางที่มีอยู่แล้วภายในเช่น / wp / v2 / posts ยอมรับ \wp_localize_script("client-js", "theme", [ 'nonce' => wp_create_nonce('wp_rest'), 'user' => get_current_user_id(), ]); อย่างไรก็ตามการใช้ Backbone ไม่เป็นปัญหาและมีธีมดังนั้นฉันจึงเขียนปลั๊กอินต่อไปนี้: <?php /* Plugin Name: Nonce Endpoint */ add_action('rest_api_init', …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.