के साथ रीस्टफुल वेब सेवा एपीआई दस्तावेज रीस्ट/स्फिंक्स का उपयोग कर एक विश्वसनीय webservice के लिए विधियों/यूआरएल को मार्कअप करने का सबसे अच्छा तरीका क्या है? क्या कोई डिफ़ॉल्ट डोमेन है जो यूआरएल को उनके संभावित पैरामीटर, HTTP विधियों, हेडर और बॉडी कंटेंट के साथ चिह्नित करने के लिए उपयुक्त है?स्फिंक्स
की तर्ज पर कुछ:
.. rest:method:: GET /api/foo
:param bar: A valid bar
:extension: json or xml
Retrieve foos for the given parameters. E.g.::
GET /api/foo.json?bar=baz
कुछ इस तरह पहले से ही मौजूद है या प्रयोग करने योग्य डिफ़ॉल्ट एक्सटेंशन में से एक है है, या मैं एक अपने आप को लिखने के लिए करना होगा?
import re
from docutils import nodes
from sphinx import addnodes
from sphinx.locale import l_, _
from sphinx.domains import Domain, ObjType
from sphinx.directives import ObjectDescription
http_method_sig_re = re.compile(r'^(GET|POST|PUT|DELETE)?\s?(\S+)(.*)$')
class HTTPMethod(ObjectDescription):
def handle_signature(self, sig, signode):
m = http_method_sig_re.match(sig)
if m is None:
raise ValueError
verb, url, query = m.groups()
if verb is None:
verb = 'GET'
signode += addnodes.desc_addname(verb, verb)
signode += addnodes.desc_name(url, url)
if query:
params = query.strip().split()
for param in params:
signode += addnodes.desc_optional(param, param)
return url
class HTTPDomain(Domain):
"""HTTP language domain."""
name = 'http'
label = 'HTTP'
object_types = {
'method': ObjType(l_('method'), 'method')
}
directives = {
'method': HTTPMethod
}
def setup(app):
app.add_domain(HTTPDomain)
यह मुझे इस तरह के तरीकों को चिह्नित करने के लिए अनुमति देता है:
क्या आपको इस समस्या का समाधान मिला? एक ही "समस्या" का सामना करना :) –
@ हेनरिक देखें [नीचे जवाब] (http://stackoverflow.com/questions/4545828/web-service-api-documentation-with-sphinx/4732927#4732927)। – deceze