2012-02-23 86 views
1

我已经使用REST教程已经http://www.gen-x-design.com/archives/create-a-rest-api-with-php/REST与PHP如何将URL映射到后端数据库

我不知道如何的URL地址栏可以被映射到数据库(XML/SQL)用其属性输出特定对象。因此,如果地址栏中有'localhost/people/1',那么它如何链接到数据库以便使用rest来提取相关信息,以便查询将是“SELECT * FROM people where id =”。$ id = 1。

与理论的击穿

一个编码的例子将是非常美妙

感谢

回答

1

如果“输出特定的对象,其属性”你的意思是字面PHP对象,它将涉及系列化,什么,但我不认为这就是你要找的。取而代之的是,从数据库中通过使REST请求得到一组数据,这是大致的流程是如何工作的:使用GET

  • 应用从URL

    解析参数收到

    1. REST请求

    2. 应用程序查询数据库使用参数

    3. 应用格式的数据以特定的格式,通常是JSON或XML返回。

    4. 应用将数据返回给呼叫者

    至于映射到一个数据库,这具有更多地与用于服务数据的技术。最常见的技术被称为对象关系映射,并且有很多流行的PHP实现这个井的ORM,如Doctrine

    您的REST请求中的URL和方法提供了关于做什么(GET,POST,DELETE等)的参数和说明。一旦你有这些东西,创建应用程序逻辑来连接这些参数与你的ORM,接收数据,格式化和返回应该相当简单。

    [编辑]我想我对上面的讨论进行了一点概括。使用MVC模式,REST可以更轻松地工作(如在您所链接的教程中)。通过这种方式,在URL api.somesite.com/user/show/1翻译为:

    • 控制器:用户
    • 操作:显示
    • 参数:

    控制器是一个文件,其中包含称为行动的方法。该参数被传递给可以使用的操作方法。

    通过深化MVC范例,您的模型将处理数据库的连接。根据你的风格,模型可能是一个“胖模型”,你会做所有的输入过滤/验证以及格式化输出。

    要在评论中回答您的问题,“解析”通常通过路由功能完成,该功能会分解URL并将请求发送到适当的控制器/操作。

  • +0

    请您详细说明第二步 – 2012-02-23 15:29:50