Avi*_*hek 5 api rest http hyperlink
假设DogManagementPro程序是一个以客户端/服务器架构编写的应用程序,购买它的客户应该在自己的PC上运行服务器,并在本地或远程访问它。
假设我想在 DogManagementPro REST API 中支持“列出所有狗”操作。
所以http://localhost/DogManagerPro/api/dogs现在GET应该获取以下响应:
<dogs>
<dog>http://localhost/DogManagerPro/api/dogs/ralf</dog>
<dog>http://localhost/DogManagerPro/api/dogs/sparky</dog>
</dogs>
Run Code Online (Sandbox Code Playgroud)
我想在本地 LAN 上远程访问它,[我机器的本地 IP 是 192.168.0.33] 应该通过 GEThttp://192.168.0.33:1234/DogManagerPro/api/dogs获取什么?
应该是:
<dogs>
<dog>http://localhost/DogManagerPro/api/dogs/ralf</dog>
<dog>http://localhost/DogManagerPro/api/dogs/sparky</dog>
</dogs>
Run Code Online (Sandbox Code Playgroud)
也许:
<dogs>
<dog>http://192.168.0.33/DogManagerPro/api/dogs/ralf</dog>
<dog>http://192.168.0.33/DogManagerPro/api/dogs/sparky</dog>
</dogs>
Run Code Online (Sandbox Code Playgroud)
?
有些人认为我应该通过只返回一个路径元素来完全解决这个问题:
<dogs>
<dog>/DogManagerPro/api/dogs/ralf</dog>
<dog>/DogManagerPro/api/dogs/sparky</dog>
</dogs>
Run Code Online (Sandbox Code Playgroud)
什么是最好的方法?
我个人一直使用非绝对网址。它还解决了一些其他问题,例如反向/缓存代理。
但是对于客户端来说有点复杂,如果他们想按原样存储文档,这可能意味着他们现在还需要存储基本 url,或扩展内部 url。
如果您确实选择使用 full-url 路由,我不建议使用 HTTP_HOST,而是设置多个虚拟主机和环境变量并使用它。如果您稍后需要在源服务器前使用代理,这将解决该问题。
| 归档时间: |
|
| 查看次数: |
3712 次 |
| 最近记录: |