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

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

5
Joda Time กับ Java Time
ถึงแม้ว่า Joda จะมีคุณสมบัติที่หลากหลายและมีความซับซ้อนมากกว่าเวลา Java มาตรฐาน แต่ก็อาจไม่ใช่สิ่งที่ดีที่สุดในการใช้งานเสมอไป ฉันจะตัดสินใจได้อย่างไรว่าฉันควรใช้ Joda Time หรือ Java Time ในโค้ด Java ใด ๆ มีแนวทางบางอย่างที่บอกเราว่าจะเลือกแนวทางที่เหมาะสมหรือไม่ขึ้นอยู่กับข้อกำหนดของเรา
19 java  api  joda-time 

3
decoupling คนที่กล้าหาญ DRY เป็น REST หรือไม่?
ฉันกำลังสร้าง REST API เพื่อแสดงการทำงานส่วนใหญ่ของ Java API ที่มีอยู่ API ทั้งสองมีไว้สำหรับใช้ภายในองค์กรของฉัน ฉันไม่ต้องออกแบบเพื่อใช้ภายนอก ฉันมีอิทธิพลเหนือ API ทั้งคู่ แต่กำลังใช้งาน REST อยู่ Java API จะยังคงใช้งานต่อไปสำหรับแอปพลิเคชันในพื้นที่ (ไม่ใช่ "เลิกใช้") แต่ REST API จะใช้สำหรับการพัฒนาใหม่ที่สำคัญ บางคลาส Java API เป็นเพียงข้อมูล (beans ที่มีคุณสมบัติ, getters, setters) และอย่างน้อยสิ่งเหล่านี้ก็เหมาะสมที่จะส่งผ่าน (ในบางรูปแบบ) ผ่าน REST API เป็นข้อมูล (ซึ่งจะถูกจัดให้อยู่ในรูปแบบ XML หรือ JSON) ตัวอย่างเช่นคลาสที่เก็บข้อมูลเกี่ยวกับเครื่องเซิร์ฟเวอร์ ฉันกำลังเผชิญกับตัวเลือกต่อไปนี้สำหรับคลาสข้อมูลเหล่านี้: ฉัน ... เปิดเผยคลาส Java ดั้งเดิม …
19 java  api  rest  coupling  dry 

5
สถาปัตยกรรม API ภายในและภายนอก
บริษัท ที่ฉันทำงานเพื่อรักษาผลิตภัณฑ์ SaaS ที่ประสบความสำเร็จซึ่งเติบโตขึ้นอย่าง "เป็น" ในช่วงหลายปีที่ผ่านมา เราวางแผนที่จะขยายสายผลิตภัณฑ์ใหม่ที่จะใช้ข้อมูลร่วมกันกับผลิตภัณฑ์ที่มีอยู่ เพื่อสนับสนุนสิ่งนี้เราต้องการรวมตรรกะทางธุรกิจไว้ในที่เดียวนั่นคือเลเยอร์บริการเว็บ เลเยอร์ WS จะถูกใช้โดย: เว็บแอพพลิเคชั่น เครื่องมือในการนำเข้าข้อมูล เครื่องมือที่จะรวมเข้ากับซอฟต์แวร์ไคลเอ็นต์อื่น ๆ (ไม่ใช่ API ต่อ se) เราต้องการสร้าง API ที่ลูกค้าของเราสามารถใช้เพื่อสร้างการรวมระบบของพวกเขาเอง เรากำลังดิ้นรนกับคำถามต่อไปนี้: ควรใช้ API ภายใน (รู้จักกันว่าเลเยอร์ WS) และ API ภายนอกเป็นหนึ่งเดียวกันพร้อมการตั้งค่าความปลอดภัยและการอนุญาตเพื่อควบคุมสิ่งที่สามารถทำได้โดยใครหรือควรเป็นสองแอปพลิเคชันแยกต่างหากที่ API ภายนอกเรียก API ภายใน ชอบแอปพลิเคชันอื่นหรือไม่ จนถึงตอนนี้การถกเถียงของเราดูเหมือนว่าการแยกพวกเขาอาจปลอดภัยมากขึ้น แต่จะเพิ่มค่าใช้จ่าย คนอื่น ๆ ทำอะไรในสถานการณ์คล้ายกัน
19 api  web  web-services 

1
SOA / Microservices: จะจัดการการอนุญาตในการสื่อสารระหว่างบริการได้อย่างไร
เบื้องหน้า เรากำลังเปลี่ยนจากแพลตฟอร์มเสาหินเป็นสถาปัตยกรรมที่เน้นการบริการมากขึ้น เราใช้หลักการ DDD ขั้นพื้นฐานมากและแยกโดเมนของเรากับบริบทที่แตกต่างกัน แต่ละโดเมนมีการกระจายและเปิดเผยบริการผ่านเว็บ API (REST) เนื่องจากลักษณะของธุรกิจของเราเรามีบริการเช่นการจอง , บริการ , ลูกค้า , ผลิตภัณฑ์ฯลฯ เรายังได้ติดตั้งเซิร์ฟเวอร์ข้อมูลประจำตัว (ขึ้นอยู่กับเซิร์ฟเวอร์ข้อมูลประจำตัวของ Thinktecture 3) ซึ่งมีบทบาทหลักคือ: การพิสูจน์ตัวตนจากศูนย์กลาง (ให้ข้อมูลรับรองว่ามันเป็นปัญหาโทเค็น) เพิ่มการอ้างสิทธิ์ในโทเค็นเช่น: ขอบเขตของลูกค้า (ตามลูกค้าฉันหมายถึงแอปพลิเคชันที่ทำการร้องขอ), ตัวระบุลูกค้า (ตามลูกค้าฉันหมายถึงบุคคลที่ใช้แอปพลิเคชัน) นอกจากนี้เรายังแนะนำบทบาทของAPI เกตเวย์ซึ่งเป็นศูนย์กลางการเข้าถึงจากภายนอกสู่บริการของเรา API Gateway มีฟังก์ชันที่ไม่ต้องการความรู้อย่างลึกซึ้งเกี่ยวกับโดเมนภายในเช่น: Reverse proxy: กำหนดเส้นทางคำขอที่เข้ามาในบริการภายในที่เหมาะสม การกำหนดเวอร์ชัน: เวอร์ชันของ API เกตเวย์จับคู่กับเวอร์ชันต่างๆของบริการภายใน การตรวจสอบความถูกต้อง: คำขอของลูกค้ารวมถึงโทเค็นที่ออกโดยเซิร์ฟเวอร์ประจำตัวและ API เกตเวย์ตรวจสอบโทเค็น (ตรวจสอบให้แน่ใจว่าผู้ใช้คือใครบอกว่าเธอเป็น) การควบคุมปริมาณ: จำกัด จำนวนการร้องขอต่อลูกค้า การอนุญาต สิ่งที่เกี่ยวข้องกับการอนุญาตนี้ไม่ได้รับการจัดการใน API …

2
การออกแบบ REST API: การโทรหลายครั้งกับการโทรครั้งเดียวไปยัง API
เรากำลังพัฒนา Rest API สำหรับเว็บไซต์อีคอมเมิร์ซซึ่งแอพมือถือจะถูกใช้งาน ในหน้าแรกของแอพเราจำเป็นต้องโทรหาแหล่งข้อมูลมากมายเช่นสไลเดอร์แบรนด์ยอดนิยมสินค้าขายดี สองตัวเลือกในการโทรด้วย API: โทรเดียว: www.example.com/api/GetAllInHome โทรหลายสาย: www.example.com/api/GetSliders www.example.com/api/GetTopBrands www.example.com/api/GetBestSellingProducts www.example.com/api/GetTrendingProducts ซึ่งเป็นวิธีที่ดีที่สุดสำหรับการออกแบบ api พักผ่อน - โทรเดียวหรือหลายอธิบายข้อดีและข้อเสีย? ซึ่งจะใช้เวลามากขึ้นในการตอบสนองต่อการร้องขอ?
19 rest  api  api-design  url 

2
การ“ เปิดเผย” บางสิ่งหมายความว่าอย่างไร
ดังนั้นฉันกำลังทำงานในการสร้างแอปพลิเคชัน Google App Engine และฉันเจอคำว่า "เปิดเผย" หลายครั้งเช่น "แอปแรกของคุณสามารถแสดงวัตถุโดยใช้ HTTP based API" และ "เปิดเผยคลาสข้อมูลโมเดลผ่าน REST API " "เปิดเผย" หมายความว่าอะไร? มีการกระทำบางอย่างที่เกี่ยวข้องหรือไม่หรือเป็นส่วนนามธรรมของการออกแบบ?

4
เลิกใช้ API ของเว็บ: แนวทางปฏิบัติที่ดีที่สุดหรือไม่
ในที่สุดคุณต้องคิดค่าเสื่อมราคาบางส่วนของเว็บ API สาธารณะของคุณ อย่างไรก็ตามฉันสับสนในสิ่งที่จะเป็นวิธีที่ดีที่สุดที่จะทำ หากคุณมีแอปของบุคคลที่สามที่มีขนาดใหญ่เพียงแค่ดึง API เวอร์ชันเก่าออกมาดูเหมือนจะผิดวิธีเพราะแอพเกือบทั้งหมดจะล้มเหลวในชั่วข้ามคืน อย่างไรก็ตามคุณไม่สามารถเก็บเว็บ api โบราณไว้ได้ตลอดไปเพราะอาจล้าสมัยหรือมีการเปลี่ยนแปลงที่สำคัญซึ่งทำให้การทำงานเป็นไปไม่ได้ แนวทางปฏิบัติที่ดีที่สุดสำหรับการคัดค้าน API ของเว็บเก่าคืออะไร
18 api 

1
ตำแหน่งที่จะวางคีย์ API: ส่วนหัว HTTP ที่กำหนดเอง VS ส่วนหัวการให้สิทธิ์ด้วยชุดรูปแบบที่กำหนดเอง
ฉันกำลังออกแบบ REST API โดยใช้การอนุญาต / การพิสูจน์ตัวตนผ่านทางคีย์ API ฉันพยายามคิดออกว่าเป็นที่ที่ดีที่สุดสำหรับสิ่งนั้นและพบว่าหลายคนแนะนำให้ใช้ส่วนหัว HTTP ที่กำหนดเองเช่นProjectName-Api-Keyเช่น: ProjectName-Api-Key: abcde แต่ก็เป็นไปได้และถูกต้องตามหลักอุดมการณ์ที่จะใช้Authorizationส่วนหัวกับชุดรูปแบบที่กำหนดเองเช่น: Authorization: ApiKey abcde ในทางกลับกันฉันพบการพิจารณาว่ารูปแบบการให้สิทธิ์ที่กำหนดเองอาจไม่คาดคิดและไม่ได้รับการสนับสนุนจากลูกค้าบางรายและนำไปสู่รหัสที่กำหนดเองอยู่ดีดังนั้นจึงเป็นการดีกว่าที่จะใช้ส่วนหัวที่กำหนดเอง คุณต้องการส่งคีย์ API ไปทางไหน

2
API ควรใช้การรับรองความถูกต้องพื้นฐาน HTTP อย่างไร
เมื่อ API ต้องการให้ลูกค้ารับรองความถูกต้องฉันได้เห็นสถานการณ์ที่แตกต่างกันสองสถานการณ์ที่ใช้และฉันสงสัยว่ากรณีใดที่ฉันควรใช้กับสถานการณ์ของฉัน ตัวอย่าง 1. บริษัท ให้บริการ API เพื่ออนุญาตให้บุคคลที่สามรับรองความถูกต้องด้วยโทเค็นและข้อมูลลับโดยใช้ HTTP Basic ตัวอย่างที่ 2 API ยอมรับชื่อผู้ใช้และรหัสผ่านผ่าน HTTP Basic เพื่อตรวจสอบสิทธิ์ผู้ใช้ โดยทั่วไปแล้วพวกเขาจะได้รับโทเค็นกลับมาสำหรับคำขอในอนาคต การตั้งค่าของฉัน: ฉันจะมี JSON API ที่ฉันใช้เป็นแบ็กเอนด์สำหรับมือถือและเว็บแอป ดูเหมือนเป็นวิธีปฏิบัติที่ดีสำหรับทั้งแอปมือถือและเว็บในการส่งโทเค็นและความลับดังนั้นเฉพาะแอปทั้งสองนี้เท่านั้นที่สามารถเข้าถึง API ที่ปิดกั้นบุคคลที่สามอื่น ๆ แต่แอพมือถือและเว็บช่วยให้ผู้ใช้สามารถเข้าสู่ระบบและส่งโพสต์ดูข้อมูลของพวกเขาและอื่น ๆ ดังนั้นฉันต้องการให้พวกเขาเข้าสู่ระบบผ่านทาง HTTP พื้นฐานเช่นเดียวกับการร้องขอแต่ละครั้ง ฉันจะใช้ทั้งสองวิธีร่วมกันหรือส่งเฉพาะข้อมูลรับรองผู้ใช้ (ชื่อผู้ใช้และโทเค็น) ในแต่ละคำขอหรือไม่ หากฉันส่งเฉพาะข้อมูลรับรองผู้ใช้ฉันจะเก็บไว้ในคุกกี้บนไคลเอนต์หรือไม่

6
พื้นที่สาธารณะของ Java เป็นเพียงข้อบกพร่องทางประวัติศาสตร์ที่น่าเศร้าในการออกแบบ ณ จุดนี้หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ดูเหมือนว่าจะเป็น Java orthodoxy ณ จุดนี้ว่าโดยทั่วไปไม่ควรใช้เขตข้อมูลสาธารณะสำหรับสถานะวัตถุ (ฉันไม่เห็นด้วยจำเป็น แต่นั่นไม่เกี่ยวข้องกับคำถามของฉัน) ระบุว่ามันจะถูกต้องหรือไม่ที่จะบอกว่าจากที่เราอยู่ทุกวันนี้เป็นที่ชัดเจนว่าสาขาสาธารณะของ Java เป็นข้อผิดพลาด / ข้อบกพร่องของการออกแบบภาษาหรือไม่ หรือมีการโต้แย้งเหตุผลว่าพวกเขาเป็นส่วนที่มีประโยชน์และมีความสำคัญของภาษาแม้วันนี้? ขอบคุณ! อัปเดต:ฉันรู้เกี่ยวกับวิธีที่หรูหรากว่าเช่นใน C #, Python, Groovy เป็นต้นฉันไม่ได้มองหาตัวอย่างเหล่านั้นโดยตรง ฉันแค่สงสัยจริงๆว่ายังมีใครบางคนอยู่ในหลุมหลบภัยพูดพึมพำว่าเขตข้อมูลสาธารณะที่ยอดเยี่ยมเป็นอย่างไรและฝูงทั้งหมดเป็นเพียงแค่แกะ ฯลฯ อัปเดต 2:เขตข้อมูลสาธารณะสุดท้ายคงที่ชัดเจนเป็นวิธีมาตรฐานในการสร้างค่าคงที่สาธารณะ ฉันอ้างถึงการใช้ฟิลด์สาธารณะสำหรับสถานะวัตถุ (แม้แต่สถานะที่ไม่เปลี่ยนรูปแบบ) ฉันคิดว่ามันดูเหมือนว่ามีข้อบกพร่องในการออกแบบที่ควรใช้ฟิลด์สาธารณะสำหรับค่าคงที่ แต่ไม่ใช่สำหรับรัฐ ... กฎของภาษาควรมีการบังคับใช้โดยธรรมชาติด้วยไวยากรณ์ไม่ใช่ตามแนวทาง

3
เว็บ API ทำงานอย่างไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเคยได้ยิน API ของเว็บมากมายเช่น Facebook, Twitter และอื่น ๆ ซึ่งช่วยให้บุคคลที่สามเข้าถึงข้อมูลและจัดการกับมัน ฉันต้องการทราบว่าเว็บ API ทำงานอย่างไร พื้นฐานของ web API คืออะไร? หากฉันต้องการสร้าง API สำหรับเว็บไซต์ของฉันเพื่อให้ผู้คนสามารถเข้าถึงหรืออัปเดตได้ฉันต้องเริ่มต้นด้วยอะไร

4
เป็นความคิดที่ดีหรือไม่ที่จะรวมคำขอ HTTP หลายรายการเพื่อบันทึกแบนด์วิดท์
ฉันกำลังเตรียมแอปพลิเคชันหน้าเดียวซึ่งบางครั้งอาจใช้ผ่านการเชื่อมต่อมือถือที่ช้า บางส่วนของมันค่อนข้างหนักในแง่ของการร้องขอ API (การดึงทรัพยากรที่แตกต่างกันสิบประการสำหรับการแสดงผลหน้าจอใหม่) ตอนนี้เป็นความคิดที่ดีหรือไม่ที่จะรวมบริการเหล่านี้เข้ากับบริการที่ให้ข้อมูลที่จำเป็นทั้งหมด แต่ไม่เป็น "บริสุทธิ์" ในแง่ของหลักการ REST ใช่หรือไม่ มีการเพิ่มประสิทธิภาพที่สำคัญที่คาดหวังหรือไม่?
16 api  rest  http 

2
ควรใช้ทรัพยากรที่ซ้อนอยู่ใน RESTful API เมื่อใด
ฉันมีสองแหล่งข้อมูล: ผู้ใช้และลิงก์ ผู้ใช้สามารถมีหลายลิงค์ที่เกี่ยวข้อง ฉันได้ออกแบบ RESTful API ของฉันเพื่อให้คุณสามารถเข้าถึงลิงก์ที่เกี่ยวข้องกับผู้ใช้ได้ที่ URI ต่อไปนี้: /users/:id/links อย่างไรก็ตามฉันจำเป็นต้องมี URI เสมอสำหรับลิงก์ - บางครั้งฉันอาจต้องการลิงก์ทั้งหมดโดยไม่คำนึงถึงผู้ใช้ สำหรับสิ่งนี้ฉันมี: /links เสียงนี้ใช้ได้ไหม? มี URI สองตัวสำหรับลิงก์หรือไม่ ฉันสงสัยว่าฉันควรเข้าถึงลิงก์สำหรับผู้ใช้ที่มี URI หรือไม่เช่น: /links/user/:id หรือ /links/?user=:id ด้วยวิธีนี้ฉันมีแหล่งข้อมูลเพียงแหล่งเดียวสำหรับลิงก์
16 api  rest  api-design 

1
ทำไม 'การรวมตัว' ไม่รองรับโซลูชั่น API เกตเวย์ส่วนใหญ่?
เมื่ออ่านเกี่ยวกับ API เกตเวย์สิ่งหนึ่งที่เกิดขึ้นทุกครั้งคือ API เกตเวย์เป็นสถานที่ที่คุณควรรวมผลลัพธ์จากจุดปลายหลายจุด ฟังดูดีจริงๆ อย่างไรก็ตามโซลูชันเกตเวย์ API ยอดนิยมจำนวนมากเช่น AWS API Gateway, Kongo และ Netflix Zuul ไม่สนับสนุนคุณสมบัติดังกล่าว คุณต้องแฮ็คหรือใช้ตัวกรองที่กำหนดเองได้ การรวมตัวกันถือว่าเป็นการปฏิบัติที่ไม่ดีหรือไม่? ผู้คนส่งคืนผลลัพธ์จากหลายจุดสิ้นสุดได้อย่างไร

4
Microservices REST หรือ AMQP ซึ่งในกรณีนี้
ฉันได้อ่านบทความมากมายเกี่ยวกับสถาปัตยกรรมไมโครไซต์และฉันสงสัยว่าเมื่อไรที่จะใช้ AMQP หรือ REST ฉันได้อ่านว่าการเชื่อมต่อระหว่างบริการเป็นสิ่งที่ดีและ AMQP ดูเหมือนจะเป็นทางเลือกที่ดีในกรณีนี้ แต่ถ้าเราใช้ AMQP นี่หมายความว่าเราไม่จำเป็นต้องใช้ปลายทาง REST อีกต่อไป (แต่นั่นหมายความว่าเราสูญเสียแนวคิด HATEOAS) แต่ REST เป็นวิธีที่ดีในการสร้างบริการของฉันหรือไม่ เพราะฉันจะไม่ใช้จุดปลายใด ๆ ... ในกรณีใดอันหนึ่งดีกว่าอีกอัน? เมื่อใดที่ฉันควรใช้รายการใดรายการหนึ่ง

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