REST:我不明白

时间:2012-01-29 19:27:43

标签: php rest service

我正在尝试理解和设置REST服务,但我不清楚。

this site上说:

  

让我们来看看一些可能的请求可能意味着什么:GET   请求/ api / users - 列出所有用户。向/ api / users / 1获取请求 -   ID为1的用户的列表信息

如何设置? / api / users / 1是文件夹中的文件吗?如果没有,那么这是如何工作的呢?当我浏览到api / users / 1时,我会收到404错误,不是吗?

[edit]对于我的应用程序,我被建议使用带有AJAX的REST服务。

3 个答案:

答案 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/1Users控制器的Api操作将被执行并作为id参数传递1。

服务器上实际上不存在apiusers文件。路由引擎拦截请求并将其分派给相应的服务器端处理程序。

这里是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以获取更多信息。