我正在尝试理解和设置REST服务,但我不清楚。
在this site上说:
让我们来看看一些可能的请求可能意味着什么:GET 请求/ api / users - 列出所有用户。向/ api / users / 1获取请求 - ID为1的用户的列表信息
如何设置? / api / users / 1是文件夹中的文件吗?如果没有,那么这是如何工作的呢?当我浏览到api / users / 1时,我会收到404错误,不是吗?
[edit]对于我的应用程序,我被建议使用带有AJAX的REST服务。
答案 0 :(得分:1)
您需要使用服务器端语言和Web服务器。这允许您配置将响应特定客户端请求的虚拟文件夹或路由。根据您使用的服务器端平台和语言,有不同的技术可以实现。例如,如果您使用ASP.NET MVC,则可以配置以下路由:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
现在,当您向/api/users
发送请求时,Users
控制器上的Api
操作将被执行并作为id
参数传递null。如果您请求/api/users/1
,Users
控制器的Api
操作将被执行并作为id
参数传递1。
服务器上实际上不存在api
和users
文件。路由引擎拦截请求并将其分派给相应的服务器端处理程序。
这里是an article你可以看看哪个解释了如何用PHP实现这个目标。
答案 1 :(得分:1)
本文假设请求映射到可以根据需要处理URL的Web应用程序。例如,如果使用Java(和JAX-RS),则可以将/users
映射到一个servlet,并在处理方法中将子URL部分作为参数。请参阅此文章以了解重点:http://docs.oracle.com/javaee/6/tutorial/doc/gilik.html
@Path("/users/{username}")
public class UserResource {
@GET
@Produces("text/xml")
public String getUser(@PathParam("username") String userName) {
...
}
}
答案 2 :(得分:0)
它适用于Apache的.htaccess文件,它重写和重新路由URl(使用mod_rewrite)。
查看mod_rewrite以获取更多信息。