如何在 PHP 中创建 Web API 服务

2022-08-30 18:57:28

可能的重复:
是否有必要有一个wsdl文件来在php中创建Web服务?

我想创建一个 Web API。

我的要求是,我想创建一种方式,以便我的客户能够从我的网站数据库中插入/删除数据,但我不希望客户直接登录到我的网站。我希望他们通过客户端请求调用我的 WSDL 文件 URL,这会将响应返回给客户。

我听说我们可以在SOAP调用或NuSOAP的帮助下做到这一点。在做了一些谷歌搜索后,我尝试了几种方法,但没有成功。

你能告诉我一步一步的说明,我如何做到这一点。


答案 1

基本上,什么是 API?

如果您了解数据如何从HTML表单转换为php代码,那么请相信我,您对API了如指掌。在这里,我们不是在谈论表单,而是讨论由这些表单在最后创建的URL。

API 有哪些类型?

有两种类型的用于Web服务的频繁使用的API:SOAP和REST.Google是基于SOAP的API的主要参与者之一,而Yahoo(以及他们最近的大多数收购)都采用了REST方法。通常情况下,您今天遇到的“Web 2.0”服务可能会使用REST。

如何在PHP中创建一个带有身份验证密钥的REST API来从数据库中删除一个值?

假设我们有一个PHP类(manage.php),可以帮助我们管理数据库中的条目:

class manage {
    private $entryId;

    function __construct($entryId) {
        $this->entryId = $entryId;
    }

    function deleteEntry() {
        //delete $this->entryId from database
    }
}

在我们自己的服务器上,我们可能会像这样访问此功能:

require_once('manage.php');
$m = new manage(23);
$m->deleteEntry();

对我们来说足够简单,但是我们如何允许不在服务器上的人访问相同的功能?为此,我们将创建第三个文件,作为其他开发人员和我们的类之间的缓冲区(或“接口”)。以下是我们可能创建的一个文件示例,以允许开发人员访问我们类中的删除函数,我们将在“api/delete.php

require_once('manage.php');
if (hasPermission($_POST['api_key']) {
    $m = new manage($_POST['entry_id']);
    $m->deleteEntry();
}

这将允许用户通过api_key和entry_id http://example.com/api/delete.php 向我们发送POST请求。您会注意到该函数与我们在自己的服务器上编写的函数非常相似,只是我们使用函数检查POST api_key变量以查看其是否有权访问数据库。为了简单起见,我们没有在这里包含该函数(hasPermission)。除了显示的内容之外,您还必须根据api_key找到用户帐户,进行一些错误检查,并(如果您想制作一个好的API)在请求后提供格式正确的成功或错误响应。稍后我们将介绍成功和错误响应。

如何设计一个好的API,为什么它很重要?

我想谷歌的这个视频可以比我解释得更好。http://youtu.be/aAb7hSCtvGw

引用:

http://en.wikipedia.org/wiki/Representational_state_transfer

http://en.wikipedia.org/wiki/SOAP

http://particletree.com/features/how-to-add-an-api-to-your-web-service/

http://www.webresourcesdepot.com/how-to-create-an-api-10-tutorials/

谷歌搜索结果

注意:答案是汇编所有参考文献!!.


答案 2

推荐