REST与PHP如何将URL映射到后端数据库

时间:2012-02-23 14:49:22

标签: php mysql xml rest routes

我一直在使用REST教程http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

我不明白地址栏中的Url如何映射到数据库(xml / sql)以输出具有其属性的特定对象。

因此,如果地址栏中有'localhost / people / 1',它如何链接到数据库以使用rest提取相关信息,因此查询将是“SELECT * FROM where where id =”。$ id = 1

理论分解的编码示例非常棒

由于

1 个答案:

答案 0 :(得分:1)

如果通过“输出具有其属性的特定对象”,则表示文字PHP对象,它将涉及序列化等等,但我不认为这是您正在寻找的。相反,要通过发出REST请求从数据库中获取一组数据,这大致就是流程的工作方式:

  1. 使用GET

  2. 接收REST请求
  3. 应用程序从URL

  4. 解析参数
  5. 应用程序使用参数查询数据库

  6. 应用程序将数据格式化为以特定格式返回,通常是JSON或XML。

  7. 应用程序将数据返回给调用者

  8. 映射到数据库而言,这更多地与用于提供数据的技术有关。最常见的技术称为对象关系映射,并且有许多流行的用于PHP的ORM可以很好地实现,例如Doctrine

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

    [编辑] 我想我在上面的讨论中略微概括了一下。 REST使用MVC模式更容易(如您链接的教程)。通过这种方式,网址api.somesite.com/user/show/1会转换为:

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

    控制器是一个包含称为操作的方法的文件。该参数将传递给可以使用它的action方法。

    进一步推动MVC范例,您的模型将处理数据库的连接。根据您的风格,模型可能是“胖模型”,您将完成所有输入过滤/验证以及输出格式化。

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