向Django应用程序添加API的最佳方法是什么?

2024-04-26 13:02:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在向Django CMS添加metaweblogapi支持,但不太确定如何对应用程序进行分层。在

我使用的是django\xmlrpc,它允许我为每个请求映射到参数化函数。这只是一个如何从服务函数(AddPage、EditPage等)挂接对django应用程序的调用的例子

对于django页面cms,我想还有许多django应用程序,业务逻辑和验证都包含在表单中。这里有PageForm(窗体.ModelForm)以及PageAdmin(ModelAdmin),它们都包含大量的逻辑和验证。在

如果我要构建一个允许维护页面和内容的API,这是否意味着我应该以编程方式创建和填充PageAdmin实例?然后捕捉任何异常,并转换为它们的api等价物?或者这是一个坏主意-滥用表单的目的?在

另一个选择是重构代码,使业务和逻辑不在窗体类中。然后我将得到表单和api,它们都经过独立的业务逻辑。在

还有其他选择吗?在

最好的解决方案是什么?在


Tags: django函数api应用程序表单cms分层页面
2条回答

Web服务API只是更多的URL

这些WS-API URL的映射到视图函数。在

WS-view函数处理GET和POST(可能还有PUT和DELETE)。在

WS-view函数使用表单和模型来实现。在

在某种程度上,它就像一个管理界面。但是,没有HTML。在

WS-view函数用JSON消息或XML消息响应。在

python似乎没有提供这种现成的功能。但有一种叫做abc模块的东西:

我引用http://www.doughellmann.com/PyMOTW/abc/“通过定义抽象基类,您可以为一组子类定义一个公共API。在第三方将提供实现的情况下,此功能尤其有用…=>;API的目标,即定义契约。在

相关问题 更多 >