ฉันกำลังพัฒนาบริการ RESTful ที่เรียบง่ายสำหรับทัวร์นาเมนต์และกำหนดเวลา เมื่อมีการสร้างทัวร์นาเมนต์ผ่านคำขอ POST ที่มีเนื้อความ JSON การแข่งขันจะถูกแทรกใน a BiMap
ประกาศดังต่อไปนี้ในการนำ DAO ไปใช้:
private BiMap<String, Tournament> tournaments = Maps.synchronizedBiMap(HashBiMap.create());
เมื่อมีการสร้างทัวร์นาเมนต์ id ของสตริงที่เกี่ยวข้องจะถูกส่งคืนเพื่อให้ผู้ใช้สามารถมีการอ้างอิงในอนาคตของทัวร์นาเมนต์นั้น เขา / เธอสามารถรับข้อมูลคืนจากทัวร์นาเมนต์ใหม่ที่ทำตามคำขอต่อไปนี้:
GET http://localhost:8080/eventscheduler/c15268ce-474a-49bd-a623-b0b865386f39
แต่ถ้าหากไม่พบการแข่งขันที่มีรหัสดังกล่าวล่ะ จนถึงตอนนี้ฉันกำลังตอบกลับ 204 ข้อ นิวเจอร์ซีย์กำลังทำเพื่อฉันเมื่อกลับมาnull
จากหนึ่งในวิธีการของมัน นี่คือวิธีการที่สอดคล้องกับเส้นทางด้านบน:
@Path("/{id}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Tournament getTournament(@PathParam("id") String id) {
Optional<Tournament> optTournament = tournamentDao.getTournament(id);
if (optTournament.isPresent())
return optTournament.get();
return null;
}
คำถามของฉันคือ: มันตกลงเพื่อคืนการ204: No Content
ตอบสนองหรือควรเป็นการ404
ตอบสนองแทนเนื่องจากไม่พบทรัพยากร?
หากฉันควรเปลี่ยนเป็น 404 คำถามที่ชัดเจน: ฉันควรเปลี่ยนลายเซ็นวิธีใช่ไหม ตั้งแต่ตอนนี้การแข่งขัน (ประเภทTournament
) อาจไม่ได้รับการคืนวิธีการควรดูแตกต่างกัน ฉันควรใช้Response
ประเภทนี้เป็นประเภทส่งคืนแทนหรือไม่
{content: ''}
) การตอบสนอง 204 ครั้งจะไม่เหมาะสม