从Cornice应用程序生成Sphinx文档
cornice_sphinx的Python项目详细描述
Cornice_Sphinx
==
*生成Sphinx文档的Cornice扩展*
在代码发展过程中维护文档是一件痛苦的事。
避免信息重复也是一个相当大的挑战。
Cornice试图通过提供sphinx
(http://sphinx.pocoo.org/)指令,扫描web
服务并使用以下命令生成文档:
-创建服务实例时提供的描述
-创建响应所涉及的所有函数的文档字符串:
web服务函数本身以及验证程序。
您必须将其包含在
sphinx项目:文件:`conf.py`文件::
import cornice
sys.path.insert(0,os.path.abspath(cornice.\u file\uuu))
扩展名=['cornice\u sphinx']
当然,如果您有其他扩展名,这可能会有所不同。
service directive
----
cornice提供了一个**cornice autodoc**指令,您可以使用该指令注入websphinx中的服务文档。
该指令有以下选项:
-**模块**:包含
Cornice Web服务的Python模块的逗号分隔列表。Cornice将扫描它并查找服务。
-**app**:设置必要注册服务所需的应用程序路径。
-**services**:以逗号分隔的服务列表,在使用Cornice"service"指令
时命名。**可选**
-**服务**:如果只有一个名称,则可以使用"服务"而不是"服务"。**可选**
-**忽略**:要忽略的服务名称的逗号分隔列表。**可选的**
**模块**或**应用**是**必需的**
您可以在函数、方法和验证器中使用信息字段(请参见http://sphinx.pocoo.org/domains.html\info field lists>;``u)
。注意:
此指令以前命名为"service s",并已重命名为
更符合sphinx生态系统的内容。
报价。
这里是**完整的**声明性应用程序:
description=desc)
def check_quote(request):
"如果quote[0]不在字符串中,请确保该quote以majuscule开头,以dot结尾。"
quote=request.body
。ascii_大写:
request.errors.add('body',quote','不以majuscule开头')
如果引号[-1]不在('.','?',"!":
request.errors.add('body','quote','does not end properly')
if len(request.errors)==0:
request.validated['quote']=quote
u quote={}
u quote['default']="尚未设置!"
@quote.get()
def get-quote(请求):
"返回报价"
"返回报价"
"返回报价"
@quote.post(验证器=检查报价)
def post-quote(请求):
"更新报价"
"更新报价"
=请求。已验证['quote']
def main(全局配置,**设置):
config=configurator(设置={})
config.include("檐口")
config.scan("coolapp")
return config.make_wsgi_app()
如果wsgiref.simple廑u server import中的廑u name廑uu='廑u main廑uu:
来自wsgiref.simple廑u server import make廑server
app=main({})
httpd=make廑server('',6543,app)
print("监听端口6543….")
httpd.serve_forever()
==
==
我的**酷**应用程序提供了向服务器发送酷报价的方法!
…Cornice Autodoc::
:模块:coolapp
:服务:quote
确保引号以majuscule开头,以点"
quote=request.body
if quote[0]不在字符串中。ascii_大写:
request.errors.add('body','quote','does not start with a majuscule')
if quote[-1]不在('.','?',"!":
request.errors.add('body','quote','does not end properly')
if len(request.errors)==0:
request.validated['quote']=quote
u quote={}
u quote['default']="尚未设置!"
def get_quote(请求):
"返回报价"
"返回报价"
"返回报价"
def post_quote(请求):
"更新报价"
"更新报价"
u quote["默认"]=request.validated["报价"
config=configurator(settings={})
config.include("cornice")
desc="维护报价的服务。"
quote=service(name='quote',path='/quote',description=desc)
quote.add_view("get",获取报价)
quote.add_view("post",post_quote,validators=check_quote)
config.add_cornice_service(quote)
return config.make_wsgi_app()
如果从wsgiref.simple_server import make_server
app=main({})
httpd=make_服务器('',6543,app)
print("监听端口6543….")
http d.serve_aver()
client calls::
$curl-x post http://localhost:6543/quote-d hansolohat.
null
$curl-x get http://localhost:6543/quote
"hansolohat."
这里是**完整**Sphinx文档示例:
欢迎使用CoolApp的文档!
==
==
我的**酷**应用程序提供了向服务器发送酷报价的方法!
…Cornice Autodoc::
:app:coolapp
:service:quote
图片::cornice.png
==
*生成Sphinx文档的Cornice扩展*
在代码发展过程中维护文档是一件痛苦的事。
避免信息重复也是一个相当大的挑战。
Cornice试图通过提供sphinx
(http://sphinx.pocoo.org/)指令,扫描web
服务并使用以下命令生成文档:
-创建服务实例时提供的描述
-创建响应所涉及的所有函数的文档字符串:
web服务函数本身以及验证程序。
您必须将其包含在
sphinx项目:文件:`conf.py`文件::
import cornice
sys.path.insert(0,os.path.abspath(cornice.\u file\uuu))
扩展名=['cornice\u sphinx']
当然,如果您有其他扩展名,这可能会有所不同。
service directive
----
cornice提供了一个**cornice autodoc**指令,您可以使用该指令注入websphinx中的服务文档。
该指令有以下选项:
-**模块**:包含
Cornice Web服务的Python模块的逗号分隔列表。Cornice将扫描它并查找服务。
-**app**:设置必要注册服务所需的应用程序路径。
-**services**:以逗号分隔的服务列表,在使用Cornice"service"指令
时命名。**可选**
-**服务**:如果只有一个名称,则可以使用"服务"而不是"服务"。**可选**
-**忽略**:要忽略的服务名称的逗号分隔列表。**可选的**
**模块**或**应用**是**必需的**
您可以在函数、方法和验证器中使用信息字段(请参见http://sphinx.pocoo.org/domains.html\info field lists>;``u)
。注意:
此指令以前命名为"service s",并已重命名为
更符合sphinx生态系统的内容。
报价。
这里是**完整的**声明性应用程序:
description=desc)
def check_quote(request):
"如果quote[0]不在字符串中,请确保该quote以majuscule开头,以dot结尾。"
quote=request.body
。ascii_大写:
request.errors.add('body',quote','不以majuscule开头')
如果引号[-1]不在('.','?',"!":
request.errors.add('body','quote','does not end properly')
if len(request.errors)==0:
request.validated['quote']=quote
u quote={}
u quote['default']="尚未设置!"
@quote.get()
def get-quote(请求):
"返回报价"
"返回报价"
"返回报价"
@quote.post(验证器=检查报价)
def post-quote(请求):
"更新报价"
"更新报价"
=请求。已验证['quote']
def main(全局配置,**设置):
config=configurator(设置={})
config.include("檐口")
config.scan("coolapp")
return config.make_wsgi_app()
如果wsgiref.simple廑u server import中的廑u name廑uu='廑u main廑uu:
来自wsgiref.simple廑u server import make廑server
app=main({})
httpd=make廑server('',6543,app)
print("监听端口6543….")
httpd.serve_forever()
==
==
我的**酷**应用程序提供了向服务器发送酷报价的方法!
…Cornice Autodoc::
:模块:coolapp
:服务:quote
确保引号以majuscule开头,以点"
quote=request.body
if quote[0]不在字符串中。ascii_大写:
request.errors.add('body','quote','does not start with a majuscule')
if quote[-1]不在('.','?',"!":
request.errors.add('body','quote','does not end properly')
if len(request.errors)==0:
request.validated['quote']=quote
u quote={}
u quote['default']="尚未设置!"
def get_quote(请求):
"返回报价"
"返回报价"
"返回报价"
def post_quote(请求):
"更新报价"
"更新报价"
u quote["默认"]=request.validated["报价"
config.include("cornice")
desc="维护报价的服务。"
quote=service(name='quote',path='/quote',description=desc)
quote.add_view("get",获取报价)
quote.add_view("post",post_quote,validators=check_quote)
config.add_cornice_service(quote)
return config.make_wsgi_app()
如果从wsgiref.simple_server import make_server
app=main({})
httpd=make_服务器('',6543,app)
print("监听端口6543….")
http d.serve_aver()
client calls::
$curl-x post http://localhost:6543/quote-d hansolohat.
null
$curl-x get http://localhost:6543/quote
"hansolohat."
这里是**完整**Sphinx文档示例:
欢迎使用CoolApp的文档!
==
==
我的**酷**应用程序提供了向服务器发送酷报价的方法!
…Cornice Autodoc::
:app:coolapp
:service:quote
图片::cornice.png