我正在计划用 Python 编写一个供我自己使用的 API。也许有一天我会让它免费访问,但现在我只打算在我的爱好网站上使用它。在此阶段,我需要一些关于如何为接收 GET 和 POST 请求的文件设置 URL 的建议。

假设我的一个文件名为 function_A.py 并以这种方式使用:

www.example.com/api/function_A.py?a=something&k=other+thing

我的问题是,如何以最不占用资源的方式在 API 中设置“漂亮”的 URL?

我发现大多数 API 都有一个典型的 URL 格式,例如 http://www.example.com/api/read 代替 http://www.example.com/api/read.py

我的选择可能仅限于 mod_rewrite 速度/秒 urls.py 使用 Django - 还是还有其他更简单的选择?

这是针对后端/API 的,我宁愿将开销保持在最低限度。我只想以这种方式处理 4 个 URL,并且不希望每次调用 URL 时都出现正则表达式。

有帮助吗?

解决方案

在MYYN是正确的。使用框架诸如Ruby on Rails的或Django是创建一个RESTful API的最简单的方法。

不过,如果你不希望使用一个框架,你可以在Apache中使用mod_rewrite同样的事情。事实上,这恰恰是在Apache上运行大多数的框架/应用程序做的。

例如,WordPress使用.htaccess文件是这样的:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

此定向到的index.php,在那里它们可被解析并处理所有请求。

喜欢的回报率或Django的框架做几乎同样的事情:所有的请求都重定向到一个单一的文件/类/函数

其他提示

我的猜测是,即网服务Api漂亮的网址(又名其余的)都建立通过某种webframework(,,web.py,django、塔cherrypy,平过,...).

该模块你指的是需要照顾的网址匹配/处理以确定正确路线的请求。

从文件后者:

路线处理一个有趣的问题,经常在网站开发,怎么,你的地图网址应用程序的行动?那是,你怎么说,这应该被访问 /blog/2008/01/08, , /login 应该做的吗?许多网络框架都有一个固定的调度系统;例如, /A/B/C 装置阅读的文件 C 在目录 B, 或者叫法 CB 在模块 A.B.这些工作的很好直到你需要的重构代码,并认识到移动的方法改变它的公共网址和使用户在书签。同样,如果你想重新组织网址,并使一部分进入一款,则必须改变你仔细测试的逻辑码。

是的,是的.htaccess,你可以从一个漂亮的,外部的URL在Apache服务器映射到一些肮脏的网址您的服务平台接受的方式。

一些复杂的平台做具有产生更好的URL以及手段。

没有魔法。您恰好正在使用一个在设计时就考虑到基于文件的 URL 的 Web 服务器。

大多数网站不再使用基于文件的 URL,而是自行调度。这就是 Django 所做的,这就是 ASP.NET MVC 所做的。

你需要查找的是 模组重写 对于阿帕奇。它将允许您将非基于文件的 URL 映射到 Python 文件。

或者,考虑使用已经执行此操作的 Python Web 框架。 网页.py姜戈 都很好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top