2016-01-28 9 views
7

दस्तावेज करने के तरीके पर सिफारिश मैंने socket.io का उपयोग करके एक वेबसाइट-एपीआई लिखा है।वेबसाइट्स एपीआई

मान लें कि कनेक्शन स्थापित करने के बाद सर्वर login के लिए प्रतीक्षा करता है - {username: String, password: String} जैसे पेलोड के साथ।

सर्वर तब login:accept या login:deny घटनाओं के साथ उत्तर देता है।

केवल अगर लॉगिन सफल हुआ तो सर्वर tweets:get किसी ईवेंट tweets (जिसमें पेलोड के रूप में ट्वीट्स की एक सरणी है) के साथ प्रतिक्रिया होती है।

क्या इस तरह के एपीआई दस्तावेज करने का एक मानक तरीका है? क्या आपके पास कोई सिफारिशें और अनुभव हैं?

उत्तर

3

मशीन-पठनीय परिभाषाएं बनाने के लिए AsyncApi node tool है, यह स्वैगर के समान है लेकिन एसिंक्रोनस एपीआई के लिए, और AsyncApi docgen और विदरर्सिन जैसे HTML उत्पन्न करने के लिए टूल हैं।

आप अपने प्रलेखन का उपयोग कर निर्माण कर सकते हैं या तो yaml या json, एक उदाहरण के रूप:

asyncapi: "1.0.0" 

topics: 
    "tweets:get": 
     publish: 
      $ref: "#/components/messages/getTweets" 
    tweets: 
     subscribe: 
      $ref: "#/components/messages/tweetsList" 

कहाँ topics = events, publish = emit, और socket.io मामले में subscribe = on

यह कहने के बाद, socket.io का उपयोग करके प्रमाणीकरण ज्यादातर टोकन पर निर्भर करता है, उपयोगकर्तामें प्रमाणीकरण टोकन भेज देगा कनेक्शन आरंभ समय पर, और आप बैकएंड पर टोकन प्रमाणीकृत करते हैं, तो प्रमाणीकरण विफल होने पर आप कनेक्शन को डिस्कनेक्ट कर सकते हैं। के लिए login:accept या login:deny

const socket = io('http://localhost?token=abc'); 
// or 
const socket = io({ query: { token: 'cde' } }); 
+0

धन्यवाद @kordy कोई ज़रूरत नहीं है, मैं यह बेहतर समझा दिया है नहीं कर सका। बस यह इंगित करना चाहते हैं कि अब आप प्रमाणीकरण विधियों को दस्तावेज कर सकते हैं: https://github.com/asyncapi/asyncapi/blob/develop/README.md#security-scheme-object – fmvilas

संबंधित मुद्दे