【发布时间】:2020-07-10 00:35:06
【问题描述】:
我想为我的服务制作用户友好的 API。我试图让它像 Discord API - https://example.com/api/accounts/<account ID>/<stuff>/,下面是一些预期的链接示例:
https://example.com/api/accounts/1234567890/data/
https://example.com/api/accounts/1234567890/inventory/
https://example.com/api/accounts/1234567890/servers/
我尝试了一些 htaccess 技巧,但没有任何结果 - 网站已损坏(只是白页没有任何内容)或帐户 ID 被视为文件夹(HTTP 404,因为我不希望这些 ID 作为文件夹)。
提前感谢您的回复
编辑 1:
文件结构可以是任意的,我只是希望它能正常工作。但我最期待的是
api
- accounts
- data
- inventory
- ...
- server (example)
- game (example)
编辑 2:
我的 API 是 OOP - 所以我可以从任何地方调用它。我只需要获取数据并创建新对象并调用一些函数。在我看起来很糟糕的 API 中,链接类似于:https://example.com/api/accounts/data.php?id=123456789,而在该脚本中,我调用$stuff = new StuffObj($id, $other, $stuff, $from, $post); 并且功能类似于$stuff->execute();。但是有了新的 API,我可以只制作 GET var,比如 action,然后在 switch 中选择要使用的对象。
【问题讨论】:
-
实际处理请求的文件系统路径是什么? (你只发布了半个问题。)
-
使用路由器/前端控制器模式并传递所有内容
RewriteRule .* index.php [L,QSA] -
在寻求帮助时,重要的是向我们展示您的尝试并解释更多内容,而不仅仅是“没有任何结果”。
-
已编辑,希望对您有所帮助
-
"文件结构可以是任意的,我只想让它工作。" - ?!听上去,您目前没有 API?在实现“漂亮”的 URL 结构之前,您需要有一个有效的 API 和有效的端点(即实际处理请求的脚本......接受
<account ID>和<stuff>并执行有什么东西)-您的问题中仍然缺少此信息。上面的建议是让index.php处理所有事情——这是你想做的吗?