से संसाधनों को रिकर्सली डाउनलोड करें मैं एक विश्वसनीय HTTP एंडपॉइंट से JSON संसाधनों को रिकर्सिव रूप से डाउनलोड करना चाहता हूं और HTTP URL वाले JSON स्ट्रिंग्स के रूप में संबंधित संसाधनों के लिंक के बाद स्थानीय निर्देशिका संरचना में संग्रहीत करना चाहता हूं। Wget नौकरी के लिए एक संभावित उपकरण प्रतीत होता है, हालांकि इसके रिकर्सिव डाउनलोड स्पष्ट रूप से एचटीएमएल हाइपरलिंक्स और सीएसएस यूआरएल() संदर्भों तक ही सीमित है।रीस्टफुल वेब सेवा
प्रश्न में संसाधन Swagger प्रलेखन फ़ाइलें this one के समान हैं, हालांकि मेरे मामलों में सभी यूआरएल पूर्ण हैं। स्वैगर स्कीमा काफी जटिल है, लेकिन यह किसी भी स्ट्रिंग का पालन करने के लिए पर्याप्त होगा जो एक पूर्ण HTTP (एस) यूआरएल जैसा दिखता है। 'पथ' गुणों में निर्दिष्ट पूर्ण या सापेक्ष पथों का पालन करना बेहतर होगा।
क्या कोई भी सामान्य प्रयोजन रिकर्सिव क्रॉलर सुझा सकता है जो मैं यहां जो चाहता हूं, या स्क्रिप्टिंग wget का हल्का तरीका या इसे प्राप्त करने के समान ही कर सकता हूं?
API_ROOT_URL="http://petstore.swagger.wordnik.com/api/api-docs"
OUT_DIR=`pwd`
function download_json {
echo "Downloading $1 to $OUT_DIR$2.json"
curl -sS $1 | jq . > $OUT_DIR$2.json
}
download_json $API_ROOT_URL /api-index
jq -r .apis[].path $OUT_DIR/api-index.json | while read -r API_PATH; do
API_PATH=${API_PATH#$API_ROOT_URL}
download_json $API_ROOT_URL$API_PATH $API_PATH
done
यह jq
का उपयोग करता है अनुक्रमणिका फ़ाइल से एपीआई रास्तों को निकालने के लिए, और भी बहुत JSON मुद्रित करने के लिए के रूप में यह डाउनलोड किया जाता है:
यदि कोई उत्सुक है, तो मैं समय के साथ हमारे इन-डेवलपमेंट एपीआई के परिवर्तनों को ट्रैक करने के लिए ऐसा करने की कोशिश कर रहा हूं - रिलीज से पहले हम पिछले रिलीज से स्नैपशॉट के साथ वर्तमान दस्तावेज को अलग करने में सक्षम होंगे। – yjo
आप जो भी पूछते हैं उसे करने का कोई तरीका सुझा नहीं सकते हैं, लेकिन सामान्य जानकारी के लिए, स्वैगर 2.0 आम तौर पर मल्टी-पेज वन की बजाय एक पृष्ठ की घोषणा है (यह * आवश्यक हो तो बहु पृष्ठ हो सकता है) तो diffs आसान होगा । – Ron
@webron - ऐसा लगता है कि यह एक सुधार होगा! दुर्भाग्य से हमारे swagger दस्तावेज़ अर्द्ध स्वचालित रूप से उत्पन्न होते हैं ([swagger-springmvc] के साथ (https://github.com/martypitt/swagger-springmvc)) और मुझे नहीं लगता कि स्वैगर v2.0 आउटपुट एक विकल्प है। – yjo