从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



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java组织。openqa。硒。遥远的UnreachableBrowserException如何定义EXE路径?   java Camel AdviceWith不使用指定文件替换端点   基于字符串的java图像加载   Java中的启发式算法,计算8个谜题状态的线性冲突   java为什么不支持文件。probeContentType返回null   JPA@EntityListeners、@PrePersist和Spring@RepositoryEventHandler、@HandleBeforeSave之间的java差异   可能前缀的Java字符串到字符串[]   安装rJava | Makefile时发生java错误。全部:38:target’libjri的配方。所以他失败了   Java公共静态void main()   java如何覆盖txt文件中的某些单词   java如何获得循环中生成的字符值之和?   java Log4j创建另一个具有相同属性的appender   java如何在从Axis2 Web服务客户端通过代理服务器调用Web服务时设置代理设置?   在Windows上安装Elasticsearch时发生java错误   java如何向EditText组件添加TextChangedListener?