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

application programming interface (API) เป็นข้อกำหนดสำหรับซอฟต์แวร์อื่นที่ใช้กับซอฟต์แวร์อื่น

1
การโทรแบบอะซิงโครนัสจำนวนมากเทียบกับการโทรครั้งเดียวไปยัง API
เรากำลังพัฒนา REST API ซึ่งส่วนอื่น ๆ จะถูกใช้โดยส่วนหน้า HTML5 ผ่านทางจาวาสคริปต์ แอปพลิเคชันมีไว้สำหรับใช้ภายในองค์กรและมักจะมีผู้ใช้ประมาณ 300 คน แต่เราต้องการที่จะขยายผู้ใช้ให้ได้มากถึง 1,000 คน โดยทั่วไปแล้วการเชื่อมต่อกับ API จะทำภายใน LAN ดังนั้นคุณภาพและเวลาแฝงของการเชื่อมต่อจะดีแม้ว่าจะไม่ได้ยกเว้นการใช้งานผ่านอินเทอร์เน็ตเป็นครั้งคราวซึ่งการเชื่อมต่ออาจช้าลงและมีความล่าช้ามากขึ้นผ่านทาง 3G / 4G ตัวเลือกสองตัวที่เราคิดคือ: ส่วนหน้าจะทำการเรียกใช้แบบอะซิงโครนัสพร้อมกันหลายครั้งเพื่อโหลดส่วนประกอบต่าง ๆ ของอินเทอร์เฟซ จุดเด่น: เรียบง่าย จุดด้อย: การเชื่อมต่อกับเซิร์ฟเวอร์มากขึ้น ตัวควบคุมของส่วนหน้าจะทำการเรียก API ผ่านครั้งเดียวเป็นพารามิเตอร์ที่ต้องดึงข้อมูลวัตถุ ข้อดี: มีการเชื่อมต่อกับเซิร์ฟเวอร์เพียงครั้งเดียวแม้ว่าเซิร์ฟเวอร์จะทำการเชื่อมต่อกับฐานข้อมูลหลายครั้ง ข้อด้อย: ต้องใช้กลไกทั้งในส่วนหน้าและ API มันซับซ้อนการออกแบบ คำอธิบายเพิ่มเติม: จะมีทรัพยากรที่แตกต่างกัน ... / ผลิตภัณฑ์ ... / ที่ตั้ง ฯลฯ ทรัพยากรเหล่านี้สามารถดึงข้อมูลได้เพียงอย่างเดียว แต่จะมีทรัพยากรที่เป็นนามธรรม …
12 rest  api  ajax 

2
โครงสร้างบรรจุภัณฑ์ของคอลเลกชัน Java (java.util) - ทำไม Iterable sit ใน java.lang
ตามแผนภาพด้านล่างยกเว้นส่วนต่อประสานส่วนIterableที่เหลือทั้งหมดที่สร้างขึ้น (คลาสอินเตอร์เฟส / คลาส / นามธรรม) จะอยู่ในแพ็คเกจเดียวกันjava.util ทำไมต้องIterableนั่งในjava.langแพ็คเกจ? หมายเหตุ: ความตั้งใจคือการทำความเข้าใจกับแง่มุมของบรรจุภัณฑ์ของการเขียนโปรแกรมจาวา

2
อาร์กิวเมนต์สำหรับคำนามเอกพจน์ในการตั้งชื่อทรัพยากร RESTful API คืออะไร
ฉันเข้าใจว่าเมื่อตั้งชื่อ RESTful URI เป็นที่ยอมรับกันโดยทั่วไปในการใช้คำพหูพจน์เพื่อแสดงชุดของทรัพยากร ฉันอยากรู้ว่าอาร์กิวเมนต์สำหรับการใช้คำนามเอกพจน์แทน
12 api  rest  uri 

2
วิธีที่ดีที่สุดในการซ่อนรหัส API ในซอร์สโค้ด
ฉันต้องการแนวคิดในการปกป้องคีย์ API ส่วนตัวในแอปพลิเคชันโดยเฉพาะในแอปพลิเคชัน ac # .NET ประการแรกฉันเข้าใจว่าในทางทฤษฎีมันเป็นไปไม่ได้ที่จะซ่อนอะไรในซอร์สโค้ดดังนั้นฉันจึงคิดความคิดอื่น แต่ฉันไม่แน่ใจว่ามันเป็นไปได้จริง อย่างไรก็ตามมีความเป็นไปได้ไหมที่จะสื่อสารกับเว็บเซิร์ฟเวอร์เพื่อตรวจสอบรหัสส่วนตัวจากนั้นพูดคุยกลับไปที่แอปพลิเคชันเพื่อยืนยันว่าเป็นการจับมือที่ถูกกฎหมายหรือไม่ ฉันมีสองปุ่มที่จะทำงานกับ: กุญแจสาธารณะ (ตามชื่อที่แนะนำมันไม่จำเป็นต้องได้รับการดูแลเช่นเดียวกับความเป็นส่วนตัว) และกุญแจส่วนตัวที่ต้องได้รับการรักษาความปลอดภัยจากผู้อื่น ความคิดเห็นใด ๆ เกี่ยวกับวิธีที่ฉันสามารถทำได้จะได้รับการชื่นชมอย่างมาก
12 c#  api  authentication 

1
RESTful API ควรแยกกันอย่างไร
ฉันไม่เคยสร้าง RESTful API มาก่อนและฉันสงสัยว่ามันควรแยกออกจากกันอย่างไร ตัวอย่างเช่นสมมติว่าฉันมีลูกค้าที่มีชื่อที่อยู่หมายเลขโทรศัพท์ที่อยู่อีเมลภาษา ฯลฯ มันสมเหตุสมผลหรือไม่ที่มีวิธีอัปเดตแต่ละฟิลด์ (อัปเดตที่อยู่อัปเดตที่อยู่อีเมล ฯลฯ ) หรือควรจะมีการอัปเดตเดียวสำหรับลูกค้าทั้งหมดและแต่ละฟิลด์เป็นฟิลด์เสริมหรือไม่
12 api  rest 

2
การนำรูปแบบคำสั่งไปใช้ใน RESTful API
ฉันอยู่ในขั้นตอนการออกแบบ HTTP API หวังว่าจะทำให้ RESTful ที่สุดเท่าที่จะทำได้ มีการกระทำบางอย่างที่ฟังก์ชันการทำงานกระจายไปทั่วทรัพยากรบางอย่างและบางครั้งจำเป็นต้องเลิกทำ ฉันคิดกับตัวเองเสียงนี้ดูเหมือนรูปแบบคำสั่ง แต่ฉันจะสร้างแบบจำลองเป็นทรัพยากรได้อย่างไร ฉันจะแนะนำทรัพยากรใหม่ชื่อ XXAction เช่น DepositAction ซึ่งจะถูกสร้างขึ้นผ่านบางสิ่งเช่นนี้ POST /card/{card-id}/account/{account-id}/Deposit AmountToDeposit=100, different parameters... สิ่งนี้จะสร้าง DepositAction ใหม่และเปิดใช้งานวิธีการ Do / Execute ในกรณีนี้การส่งคืนสถานะ HTTP ที่สร้าง 201 หมายถึงการดำเนินการถูกดำเนินการสำเร็จ หลังจากนั้นหากลูกค้าต้องการดูรายละเอียดการกระทำที่เขาสามารถทำได้ GET /action/{action-id} ควรปิดกั้นการอัปเดต / วางเพราะฉันไม่เกี่ยวข้องที่นี่ และเพื่อเลิกทำการกระทำฉันคิดถึงการใช้ DELETE /action/{action-id} ซึ่งจริงๆแล้วจะเรียกวิธีการเลิกทำของวัตถุที่เกี่ยวข้องและเปลี่ยนสถานะเป็น สมมติว่าฉันมีความสุขกับสิ่งเดียวที่ต้องเลิกทำฉันไม่จำเป็นต้องทำซ้ำ วิธีนี้ใช้ได้หรือไม่ มีข้อผิดพลาดใด ๆ เหตุผลที่จะไม่ใช้มัน? สิ่งนี้เป็นที่เข้าใจจาก POV ของลูกค้าหรือไม่

3
วิธีจัดทำเอกสาร API แบบทดสอบหรือที่ไม่สมบูรณ์เช่น @deprecated
มีคำที่ดีที่คล้ายกัน แต่แตกต่างจาก "คัดค้าน" เพื่อหมายความว่าวิธีการหรือ API อยู่ในรหัสฐาน แต่ไม่ควรใช้เนื่องจากการใช้งานไม่สมบูรณ์หรือมีแนวโน้มที่จะเปลี่ยนแปลง? (ใช่ฉันรู้วิธีการเหล่านั้นไม่ควรเปิดเผยต่อสาธารณชน yada yada yada ฉันไม่ได้สร้างสถานการณ์ของฉันฉันแค่พยายามทำให้ดีที่สุดเท่าที่จะทำได้) ผู้คนแนะนำอะไร ทดลองไม่สมบูรณ์มีอะไรอีกหรือ หากฉันกำลังสร้างเอกสาร javadoc สำหรับ API นี้ที่ยังอยู่ในฟลักซ์ฉันควรใช้แท็ก @deprecated หรือมีข้อตกลงที่ดีกว่า สำหรับฉัน @deprecated แสดงว่า API นี้เก่าและมีกลไกที่ต้องการที่ใหม่กว่าพร้อมใช้งาน ในสถานการณ์ของฉันไม่มีทางเลือก แต่วิธีการบางอย่างใน API ยังไม่เสร็จสิ้นและไม่ควรใช้ ณ จุดนี้ฉันไม่สามารถทำให้พวกเขาเป็นส่วนตัว แต่ฉันต้องการที่จะใส่คำเตือนที่ชัดเจนในเอกสาร

2
โครงสร้างของ RESTful Service พร้อม Java Spring สำหรับผู้เริ่มต้น
ฉันค่อนข้างใหม่ในแง่ของทักษะการพัฒนาเว็บ Java ฉันมีโครงการที่ฉันคิดว่าจะทำให้ผู้สมัครที่ดีสำหรับบริการ RESTful จากสิ่งที่ฉันเข้าใจเกี่ยวกับ API น้อย ฉันพยายามที่จะดูรายละเอียดว่ามันควรจะมีโครงสร้างอย่างไร แต่ไม่ได้ไปที่ใดก็ได้ในแง่ของการค้นหาของ google และอ่านเนื้อหาที่ฉันมีอยู่แล้ว ฉันหวังว่าโพสต์นี้จะให้การตรวจสอบและ / หรือการเปลี่ยนเส้นทางในแง่ของความรู้และสมมติฐานของฉันในหัวข้อนี้ ข้อสันนิษฐานปัจจุบันของฉันคือการให้บริการที่สงบของฉันจะมีโครงสร้างดังต่อไปนี้: ข้อมูลฐานข้อมูล (SQL) ORM (ฉันใช้ ORM ที่ค่อนข้างไม่เป็นที่นิยมเรียกว่า CPO แต่สิ่งนี้จะถูกแทนที่ด้วย Hibernate กับคนส่วนใหญ่) คลาสผู้จัดการ Java ด้วยวิธีการที่พูดคุยกับ ORM เพื่อรับข้อมูล คลาสตัวควบคุม Java / คลาสที่จัดการการแมปคำขอและใช้@ResponseBodyเพื่อกำหนด / จัดการ URL และการกระทำของวิธีการจัดการข้อมูลผ่านทางคำกริยา HTTP ( http://mysite.com/computers/dellอาจมีการGETร้องขอด้วยคำว่า "dell" ใน URL เป็นพารามิเตอร์ที่จะส่งคืนอาร์เรย์ของข้อมูล JSON เกี่ยวกับคอมพิวเตอร์เดลล์) บริการนี้ควรทำด้วย Spring Boot …

2
จะออกแบบ API ปลายทางสำหรับโพสต์ออบเจ็กต์ลูกและเพื่อให้ได้ลูกทั้งหมดของผู้ปกครองทั้งหมดได้อย่างไร
ตัวอย่างเช่นฉันมีเอนทิตี: ลูกค้า, รายงาน ลูกค้าอาจมีหลายรายงานและฉันคิดว่าจุดสิ้นสุดสำหรับการจัดการรายงานเดียวควรซ้อนกันเช่นนี้ /clients/{client_id}/reports/{report_id} สำหรับรายงานทั้งหมดของลูกค้าหนึ่งรายคาดว่าจะเป็น enpoint: /clients/{client_id}/reports แต่ควรมองหาจุดสิ้นสุดเพื่อให้ได้รับรายงานทั้งหมดของลูกค้าทั้งหมดเพื่อให้ API มีความสอดคล้องและได้รับการออกแบบมาเป็นอย่างดี แนวทางของฉัน: (ฉันเห็นมันในบาง google api) ใช้ "-" แทนและแยกเป็น "ทั้งหมด": /clients/-/reports สิ่งนี้คงรูปแบบจุดปลายเหมือนกัน แต่ดูผิดปกติเล็กน้อยไม่พบ rfc ใด ๆ ที่แนะนำวิธีนี้ สร้างจุดปลายแยกเฉพาะสำหรับรายงานทั้งหมด: /reports แต่เพื่อรับรายงานลูกค้าก็ยัง: /clients/{client_id}/reports Refactor endpoints เพื่อทำให้ "client" ไม่ใช่ parent แต่เป็นเพียงพารามิเตอร์ตัวกรอง: /reports?client={client_id} - รายงานลูกค้าหนึ่งราย /reports - รายงานของลูกค้าทั้งหมด ในกรณีของการเพิ่มจุดปลายใหม่สำหรับการโพสต์รายงานสำหรับลูกค้าที่เฉพาะเจาะจงมันอาจดูน่าเกลียดเพราะมันจะเป็นคำขอ POST กับพารามิเตอร์ใน URL มีคำแนะนำอื่น ๆ เกี่ยวกับความคิดหรือไม่?
12 rest  api  api-design 

3
การใช้ยัติภังค์ในคีย์ JSON เป็นเรื่องที่ผิดหรือไม่?
ฉันเห็นคำถามมากมายเกี่ยวกับการเข้าถึงคีย์ JSON ที่ใช้ยัติภังค์ (กรณีเคบับ) แต่ตอนนี้ฉันพบว่าตัวเองสงสัยว่าฉันควรติดกับ camelCase หรือ snake_case ในกุญแจของฉัน ฉันรู้ว่ายัติภังค์สามารถสร้างการแมปที่ซับซ้อนได้เมื่อทำการย้ายระหว่างภาษา ฉันเคยเห็นไลบรารี่ของ JSON ที่ทำการ deserialize แปลงคีย์เหล่านั้นเป็นรูปแบบ camelCase ตัวอย่าง: var something = { "some-value": 'thing' } Vs var something = { "someValue": 'thing', "some_other_value": 'thing_two' }

4
บริการ MVC และ RESTful API
MVC ค่อนข้างตรงไปตรงมา มีรูปแบบตัวควบคุมและมุมมอง เมื่อเราสร้างเว็บไซต์มันทั้งหมดมารวมกันเป็น ' ไคลเอนต์ส่งคำขอคำหลัก REST ไปยังเซิร์ฟเวอร์ -> เซิร์ฟเวอร์ตรงกับ URL ที่ร้องขอไปยังการดำเนินการควบคุม -> ซึ่งจากนั้นเรียกรูปแบบ (s) สำหรับการรวบรวมข้อมูล / การประมวลผลได้รับผล -> และส่งคืนผลลัพธ์กลับไปยังลูกค้าเป็นหน้า HTML (ดู) ' ถ้าเรากำลังพูดถึง RESTful API เว็บเซอร์วิสอย่างแท้จริง จากนั้นโฟลว์ที่มีลักษณะคล้าย ' ไคลเอนต์จะส่งคำขอคำหลัก REST ไปยังเซิร์ฟเวอร์ -> เซิร์ฟเวอร์จับคู่ URL ที่ร้องขอไปยังแอ็คชั่นคอนโทรลเลอร์ -> ซึ่งจะเรียกโมเดลเพื่อรวบรวม / ประมวลผลข้อมูลรับผลลัพธ์ -> และส่งกลับ ผลลัพธ์กลับไปยังไคลเอ็นต์ใน JSON ' เหมือนเมื่อก่อน แต่ไม่มี 'มุมมอง' ... หรือมากกว่านั้น …

7
เป็นวิธีปฏิบัติที่ดีหรือไม่ที่จะมีค่าพิเศษ“ ALL” ใน enum
ฉันกำลังพัฒนาบริการใหม่ในสภาพแวดล้อมแบบไมโครเซอร์วิส นี่คือบริการ REST เพื่อความง่ายสมมติว่าเส้นทางคือ: / historyBooks และวิธีการ POST สำหรับเส้นทางนี้สร้างหนังสือประวัติศาสตร์ใหม่ สมมติว่าหนังสือประวัติศาสตร์ครอบคลุมยุคหนึ่งในประวัติศาสตร์ เพื่อความกระชับลองสมมุติว่าเรามีเพียงประวัติศาสตร์ยุคต่อไปนี้: โบราณ โพสต์คลาสสิก ทันสมัย enumในรหัสของฉันฉันต้องการที่จะเป็นตัวแทนของพวกเขาใน ร่างกายวิธีของ (น้ำหนักบรรทุก) อยู่ในรูปแบบ JSON erasและควรรวมถึงชื่อสนาม ฟิลด์นี้เป็นรายการeraค่าที่หนังสือเล่มนี้ครอบคลุม ร่างกายอาจมีลักษณะ: { "name": "From the cave to Einstein - a brief history review", "author": "Foo Bar", "eras": ["Ancient", "Post Classical", "Modern"] } ในบริการเฉพาะนี้ตรรกะทางธุรกิจคือ: หากไม่มียุคที่ระบุไว้ในข้อมูลเข้าดังนั้นหนังสือเล่มนี้จะถือว่าครอบคลุมทุกยุคทุกสมัย ในการตรวจสอบ API มีข้อเสนอแนะ: รวมค่าอื่นALLสำหรับยุค enum …
11 rest  api  json  enum 

5
คลาสบูลีนของ Java - ทำไมไม่ enum?
สำหรับฉันแล้วดูเหมือนว่าคลาสบูลีนเป็นตัวเลือกที่เหมาะสมที่สุดที่จะนำไปใช้เป็น enum การดูซอร์สโค้ดคลาสส่วนใหญ่เป็นวิธีสแตติกซึ่งสามารถย้ายได้ไม่เปลี่ยนแปลงไปเป็น enum ส่วนที่เหลือจะกลายเป็น enum ได้ง่ายกว่ามาก เปรียบเทียบต้นฉบับ (ความคิดเห็นและวิธีการแบบคงที่ออก): public final class Boolean implements java.io.Serializable, Comparable<Boolean> { public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); private final boolean value; public Boolean(boolean value) { this.value = value; } public Boolean(String s) { this(toBoolean(s)); …
11 java  api  source-code 

4
มี API สำหรับกำหนดเขตรัฐสภาหรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังมองหาเพื่อกำหนดเขตรัฐสภาตามที่อยู่ที่ผู้ใช้ของฉันให้ สิ่งนี้จะหลีกเลี่ยงไม่ให้ผู้ใช้ค้นหาด้วยตนเอง API ของการจัดเรียงนี้มีอยู่จริงหรือไม่? บันทึก จากความพยายามของฉันในการค้นหาฉันพบเจอสิ่งเหล่านี้เท่านั้น: http://www.govtrack.us/developers/api (ไม่แน่ใจว่าจะส่งที่อยู่หรือรหัสไปรษณีย์อย่างไร) ทรัพยากรต่อไปนี้มีอยู่ใน API ... ตั๋วเงินและมติในรัฐสภาคองเกรสแห่งสหรัฐอเมริกาตั้งแต่ปี 2516 (การประชุมครั้งที่ 93) ... คู่ (บิล, คน) ที่แสดง cosponsorship พร้อมวันที่เข้าร่วมและถอนตัว ... สมาชิกรัฐสภาและประธานาธิบดีสหรัฐฯนับตั้งแต่ก่อตั้งประเทศ ... ข้อกำหนดในสำนักงานของสมาชิกรัฐสภาและประธานาธิบดีสหรัฐฯ แต่ละเทอมสอดคล้องกับการเลือกตั้งหมายถึงแต่ละเทอมในสภาครอบคลุมสองปี (หนึ่งสภาคองเกรส) ในฐานะประธานาธิบดีสี่ปีและในวุฒิสภาหกปี (สามของรัฐสภา) ... สะสมคะแนนโหวตในรัฐสภาคองเกรสแห่งสหรัฐอเมริกาตั้งแต่ปี ค.ศ. 1789 วิธีการที่ผู้คนโหวตให้เข้าถึงผ่าน Vote_voter API ... ผู้คนโหวตให้คะแนนโหวตในรัฐสภาคองเกรสแห่งสหรัฐอเมริกาได้อย่างไรตั้งแต่ปี …
11 api 

1
เป็นวิธีที่ดีที่สุดในการแสดงความคิดเห็นระดับเลิกใน Java คืออะไร
ฉันต้องการทราบวิธีที่ดีที่สุดในการเพิ่มความคิดเห็นเพื่อระบุคลาสที่เลิกใช้แล้วใน Java ฉันควรลบความคิดเห็นก่อนหน้านี้ที่เพิ่มไปยังด้านบนของคลาสที่ช่วยให้โปรแกรมเมอร์อื่นทราบว่าคลาสนั้นสำหรับอะไรหรือฉันควรเพิ่มความคิดเห็นด้านล่าง?

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