कल्पना कीजिए कि आपके पास 2 संस्थाएं हैं, खिलाड़ी और टीम , जहां खिलाड़ी कई टीमों में हो सकते हैं। मेरे डेटा मॉडल में, मेरे पास प्रत्येक इकाई के लिए एक तालिका है, और रिश्तों को बनाए रखने के लिए एक सम्मिलित तालिका है। हाइबरनेट इसे संभालने में ठीक है, लेकिन मैं एक रिस्टफुल एपीआई में इस संबंध को कैसे उजागर कर सकता हूं?
मैं कुछ तरीके सोच सकता हूं। सबसे पहले, मेरे पास प्रत्येक इकाई में दूसरे की एक सूची हो सकती है, इसलिए एक प्लेयर ऑब्जेक्ट में टीमों की एक सूची होगी, और प्रत्येक टीम ऑब्जेक्ट में उन खिलाड़ियों की सूची होगी जो इसके हैं। एक खिलाड़ी को एक टीम में जोड़ने के लिए, आप अनुरोध के पेलोड के रूप में उपयुक्त वस्तु के साथ POST /player
या POST जैसी किसी चीज के लिए खिलाड़ी के प्रतिनिधित्व को केवल POST /team
करेंगे। यह मेरे लिए सबसे "रेस्टफुल" लगता है लेकिन थोड़ा अजीब लगता है।
/api/team/0:
{
name: 'Boston Celtics',
logo: '/img/Celtics.png',
players: [
'/api/player/20',
'/api/player/5',
'/api/player/34'
]
}
/api/player/20:
{
pk: 20,
name: 'Ray Allen',
birth: '1975-07-20T02:00:00Z',
team: '/api/team/0'
}
जिस तरह से मैं ऐसा करने के लिए सोच सकता हूं वह अपने आप में एक संसाधन के रूप में रिश्ते को उजागर करना होगा। इसलिए किसी दिए गए टीम के सभी खिलाड़ियों की सूची देखने के लिए, आप एक GET /playerteam/team/{id}
या ऐसा कुछ कर सकते हैं और PlayerTeam संस्थाओं की सूची वापस पा सकते हैं। एक खिलाड़ी को एक टीम में जोड़ने के लिए, /playerteam
पेलोड के रूप में एक उचित रूप से निर्मित प्लेयरटेम इकाई के साथ POST ।
/api/team/0:
{
name: 'Boston Celtics',
logo: '/img/Celtics.png'
}
/api/player/20:
{
pk: 20,
name: 'Ray Allen',
birth: '1975-07-20T02:00:00Z',
team: '/api/team/0'
}
/api/player/team/0/:
[
'/api/player/20',
'/api/player/5',
'/api/player/34'
]
इसके लिए सबसे अच्छा अभ्यास क्या है?