में एपीआई गेटवे का उपयोग करते समय हैटओएएस पथ अमान्य हैं, मेरे पास दो स्प्रिंग बूट एप्लिकेशन हैं, जिनमें से एक एपीआई गेटवे के रूप में कार्य कर रहा है (जैसा कि Spring Example पर चर्चा की गई है)। दूसरा जो वायर्ड है, वसंत-डेटा-आराम (वसंत-डेटा-नियो 4j-rest) का उपयोग करके प्रोफ़ाइल सेवा का खुलासा कर रहा है।स्प्रिंग बूट ऐप
पहले आवेदन पोर्ट 8080 पर शुरू कर रहा है और दूसरे के लिए रास्ते में अनुरोध करने के लिए zuul उपयोग कर रहा है इस प्रकार है:
zuul:
routes:
profiles:
path: /profiles/**
url: http://localhost:8083/profiles/
यह सब ठीक काम करता है और http://localhost:8080/profiles करने के लिए अनुरोध दूसरा app से कार्य किया जा रहा है। समस्या यह है कि प्रतिक्रिया में हैटओएएस लिंक गलत हैं। कि दूसरी सेवा को कॉल करने से प्रतिक्रिया सही हैं:
{
"_links": {
"self": {
"href": "http://localhost:8083/profiles{?page,size,sort}",
"templated": true
},
"search": {
"href": "http://localhost:8083/profiles/search"
}
},
"_embedded": {
"profiles": [
{
"name": "Andrew Rutter",
"_links": {
"self": {
"href": "http://localhost:8083/profiles/0"
}
}
},
{
"name": "Andrew Rutter",
"_links": {
"self": {
"href": "http://localhost:8083/profiles/1"
}
}
}
]
},
"page": {
"size": 20,
"totalElements": 2,
"totalPages": 1,
"number": 0
}
}
लेकिन जब यह मेरी एपीआई गेटवे में वापस आता है, लिंक
{
"name": "Andrew Rutter",
"_links": {
"self": {
"href": "http://localhost:8080/profiles/profiles/0"
}
}
}
फिर से लिखा जा रहा है प्रवेश द्वार पथ उर्फ प्लस वास्तविक सेवा है कौन सा बेस उरी क्या मुझे उस व्यवहार को अक्षम करने के लिए एक zuul विकल्प गुम है और मेजबान समायोजन के साथ नफरत यूरी को बस छोड़ दें। या गेटवे के पीछे मेरी सेवा के लिए एक तरीका है/इसके बजाए/प्रोफाइल के डिफ़ॉल्ट संसाधन समापन बिंदु (इस मामले में) जो अवांछित पथ में जोड़ा जा रहा है, इससे बचने के लिए
धन्यवाद!
सुझाव के लिए धन्यवाद। झूठ बोलने का नतीजा यह है कि लौटाए गए लिंक बैकएंड सेवा के सीधा लिंक हैं जो अवांछित हैं। मैंने देखा कि वसंत-नफरत संस्करण 0.16.0 में लाया गया था इसलिए इस निर्भरता को वर्तमान तक बदलने की कोशिश की लेकिन कोई खुशी नहीं। चीजों को और स्पष्ट करने के लिए मैंने गेटवे में एपीआई पथ/xyz को बदल दिया था। जब मैं एक विशिष्ट प्रोफ़ाइल/xzy/0 के रूप में अनुरोध करता हूं, तो इसे आंतरिक रूप से/प्रोफाइल/0 पर भेजा जाता है लेकिन प्रतिक्रिया में घृणित लिंक/xyz/प्रोफाइल/0/प्रोफाइल/0 –