मैं टूर्नामेंट और शेड्यूल के लिए एक सरल रेस्टफुल सेवा विकसित कर रहा हूं। जब एक JSON निकाय वाले POST अनुरोध के माध्यम से एक टूर्नामेंट बनाया जाता है, तो टूर्नामेंट BiMapडीएओ क्रमांक में निम्नानुसार घोषित किया जाता है।
private BiMap<String, Tournament> tournaments = Maps.synchronizedBiMap(HashBiMap.create());
जब कोई टूर्नामेंट बनाया जाता है, तो उसकी संबद्ध स्ट्रिंग आईडी वापस कर दी जाती है ताकि उपयोगकर्ता के पास उस टूर्नामेंट का भविष्य संदर्भ हो सके। वह निम्नलिखित अनुरोध करने वाले नए टूर्नामेंट से जानकारी वापस प्राप्त कर सकता है:
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 प्रतिक्रिया अनुचित होगी।