วิธีทดสอบ REST API โดยใช้ส่วนขยาย "Advanced Rest Client" ของ Chrome


89

ปฏิบัติตามคำแนะนำที่ลิงค์ด้านล่างที่ผมประสบความสำเร็จในการสร้าง REST API สำหรับแอพลิเคชัน Django ฉัน: http://django-rest-framework.org/tutorial/quickstart

ฉันสามารถทดสอบได้โดยทำสิ่งต่อไปนี้จากพรอมต์ Unix:

curl -H 'Accept: application/json; indent=4' -u root:myPassword http://www.myWebsite.com/users/

มันได้ผล :)

อย่างไรก็ตามฉันต้องการใช้ส่วนขยายของ Chrome Advanced Rest Client เพื่อทดสอบการทำงานเดียวกันนี้ ฉันได้ติดตั้งส่วนขยายแล้ว แต่ฉันไม่รู้ว่าจะใส่ฟิลด์ไหน / อย่างไร เมื่อฉันเดาแบบมีการศึกษา (ดังที่คุณเห็นในภาพหน้าจอ) มันปฏิเสธโดยบอกว่า "ไม่ได้ระบุข้อมูลรับรองการตรวจสอบสิทธิ์"

ภาพหน้าจอของคำขอที่ล้มเหลว

ฉันควรระบุพารามิเตอร์ของฉันให้กับ REST API อย่างไร / ที่ไหน

คำตอบ:


99

ความสามารถในการค้นพบนั้นน่าหดหู่ แต่ก็ค่อนข้างฉลาดว่า Advanced Rest Client จัดการการรับรองความถูกต้องขั้นพื้นฐานอย่างไร ทางลัดที่อับราฮัมกล่าวถึงไม่ได้ผลสำหรับฉัน แต่การพูดคุยเล็กน้อยเผยให้เห็นว่ามันทำงานอย่างไร

สิ่งแรกที่คุณต้องทำคือเพิ่มAuthorizationส่วนหัว: เมนู

จากนั้นสิ่งเล็ก ๆ น้อย ๆ ที่ดีจะปรากฏขึ้นเมื่อคุณโฟกัสvalueอินพุต (สังเกตช่อง "สร้าง" ที่ด้านล่างขวา): สร้างค่ารับรองความถูกต้อง

คลิกแล้วจะมีกล่องขึ้นมา มันยังทำ OAuth ได้อีกด้วยถ้าคุณต้องการ! อินพุตที่สะดวก

ธาดา! หากคุณปล่อยช่องค่าว่างไว้เมื่อคุณคลิก "สร้าง" ระบบจะเพิ่มBasicส่วนนั้นเข้าไป (ฉันคิดว่ามันจะเพิ่มสิ่ง OAuth ที่จำเป็นด้วย แต่ฉันไม่ได้ลองทำเช่นนั้นเนื่องจากความต้องการในปัจจุบันของฉันเป็นพื้นฐาน การพิสูจน์ตัวตน) ดังนั้นคุณไม่จำเป็นต้องทำอะไรเลย เติมในฟิลด์ตามความจำเป็น


สำหรับการตรวจสอบขั้นพื้นฐาน - youtube.com/watch?v=1SP1hgm9JqA ในแท็บ "แบบฟอร์มส่วนหัว" ให้เพิ่มส่วนหัว "การให้สิทธิ์" ระบบจะแนะนำอัตโนมัติเมื่อคุณเริ่มพิมพ์ ในค่าให้คลิกปุ่มแก้ไข (ดินสอ) แล้วพิมพ์ข้อมูลรับรองการตรวจสอบสิทธิ์ในป๊อปอัป
uutsav

10

จากภาพหน้าจอฉันเห็นว่าคุณต้องการส่งค่า "ผู้ใช้" และ "รหัสผ่าน" ไปยังบริการ คุณส่งค่าพารามิเตอร์ในส่วนหัวของคำขอซึ่งไม่ถูกต้อง ค่าจะถูกส่งในเนื้อหาคำขอและไม่อยู่ในส่วนหัวของคำขอ ไวยากรณ์ของคุณผิดด้วย ไวยากรณ์ที่ถูกต้องคือ: {"user":"user_val","password":"password_val"}. ตรวจสอบด้วยว่าเนื้อหาคืออะไร ควรตรงกับประเภทเนื้อหาที่คุณตั้งค่าไว้ในบริการของคุณ


7

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

ระบุตัวแปรของฟอร์ม

ระบุในรูปแบบ RAW

หากค่าตัวแปรและตัวแปรของคุณถูกต้องคุณควรเห็นการตอบสนองที่ประสบความสำเร็จในส่วนการตอบกลับ


จะเป็นอย่างไรถ้าเป็นคำขอ GET
Dejell

ฉันต้องตั้งค่าส่วนหัว Content-Type อย่างชัดเจนโดยมีค่า: application / x-www-form-urlencoded
shasi kanth

6

http://username:password@example.com/pathรูปแบบทางลัดที่ใช้โดยทั่วไปสำหรับการรับรองความถูกต้องพื้นฐานคือ คุณจะต้องรวมส่วนหัวการยอมรับไว้ในคำขอด้วย

ป้อนคำอธิบายภาพที่นี่


ขอบคุณ. ฉันได้รับคำตอบที่มีดังต่อไปนี้: <p> การยืนยัน CSRF ล้มเหลว คำขอถูกยกเลิก </p> ฉันจะแก้ไขปัญหานั้นได้อย่างไร
Saqib Ali

ดูเหมือนว่าคุณไม่ได้กดปุ่มปลายทาง API แต่จะกดปุ่ม endpoint ment แทนเพื่อให้ JavaScript ตี
อับราฮัม

โดยทั่วไปนี่เป็นวิธีแก้ปัญหาที่ดีเว้นแต่ UID หรือ PWD ของคุณจะมีสัญลักษณ์ ":" หรือ "@"
Blamkin86

คุณอาจต้องเข้ารหัส URL ชื่อผู้ใช้ / รหัสผ่านหากมีอักขระที่สงวนไว้
อับราฮัม

ฉันพยายามใช้โซลูชันของคุณสำหรับคำสั่ง GET บน HTTPS และไม่ได้ผล เช่นผู้ใช้: @ api.com / v2 / การจัดส่งมันทำงานใน curl เกิดอะไรขึ้น? ไม่มีรหัสผ่าน
Dejell

3

ในส่วนหัวที่คุณต้องเขียน

การอนุญาต: พื้นฐาน aG9sY67890vbGNpbQ ==

โดยที่สตริงหลังพื้นฐานคือค่าการเข้ารหัส 64 บิตของชื่อผู้ใช้ของคุณ: รหัสผ่าน ตัวอย่าง php ของการรับค่าส่วนหัวคือ: echo "Authorization: Basic" base64_encode ("myUser: myPassword");

nb: ฉันถือว่าวิธีการพิสูจน์ตัวตนของคุณเป็นพื้นฐาน ซึ่งอาจแตกต่างกันได้เช่นกัน


คำถามนี้ถามเป็นพิเศษเกี่ยวกับวิธีดำเนินการในส่วนขยาย Chrome Advanced Rest Client
Shauna

คำตอบของ Shauna นั้นถูกต้องและควรเป็นคำตอบที่ได้รับการยอมรับ แต่ความคิดเห็นนี้จาก sharif ยังมีประโยชน์สำหรับผู้ที่อยากรู้ว่าไคลเอนต์ Chrome Advanced Rest ทำอะไรเพื่อเข้ารหัสผู้ใช้และรหัสผ่านให้กับคุณ ขอบคุณ.
Deemoe


0

วิธีง่ายๆในการแก้ไขปัญหาการตรวจสอบสิทธิ์นี้คือการขโมยโทเค็นการตรวจสอบสิทธิ์โดยใช้ Fiddler

ขั้นตอน

  1. เปิดไฟนักเล่นซอและเบราว์เซอร์
  2. ไปที่เบราว์เซอร์เพื่อเปิดเว็บแอปพลิเคชัน (เว็บไซต์) และทำการตรวจสอบสิทธิ์ที่จำเป็น
  3. เปิด Fiddler และคลิกที่คำขอหน้า HTTP 200 HTML การจับค่าคุกกี้โดยใช้ Fiddler
  4. ในบานหน้าต่างด้านขวาจากส่วนหัวของคำขอให้คัดลอกค่าพารามิเตอร์ส่วนหัวของคุกกี้ ป้อนคำอธิบายภาพที่นี่
  5. เปิด REST Client และคลิกที่แท็บ "Header form" และระบุค่าคุกกี้จากคลิปบอร์ด

คลิกที่ปุ่มส่งและจะดึงผลลัพธ์


0

ด้วย ARC ล่าสุดสำหรับคำขอ GET ที่มีการพิสูจน์ตัวตนจำเป็นต้องเพิ่มส่วนหัวดิบชื่อ Authorization: authtoken

โปรดค้นหาภาพหน้าจอรับ คำขอพร้อมการรับรองความถูกต้องและพารามิเตอร์การสืบค้น

หากต้องการเพิ่มพารามิเตอร์การสืบค้นให้คลิกที่ลูกศรแบบเลื่อนลงทางด้านซ้ายของช่อง URL

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