这是什么类型的API?

时间:2016-02-23 13:26:54

标签: php api rest soap

  

在您自己的环境中创建一个非常简单的表单(不需要样式)   使用HTTP POST集成到我们的Webservice API中。

我使用 Zend Framework 2 编写了一个简单的应用程序。该应用程序创建一个表单,该表单经过验证后将被发送到“ Webserver API via HTTP POST ”以接收响应。

我想以正确的方式查询API,因为我非常相信协议和标准。

我的以下代码可用于验证表单:

zf-skeleton/module/MyApplication/src/MyApplication/Controller/IndexController.php

public function submitAction() {
     $myForm = new MyForm();
     $myForm->get('submit')->setValue('Add');         

     $request = $this->getRequest();
     if ($request->isPost()) {
         $myModel = new MyModel();
         $myForm->setInputFilter($myModel->getInputFilter());
         $myForm->setData($request->getPost());

         if ($myForm->isValid()) {
             // Form is validated. [1]

表单验证后,我想了解将表单数据发送到“ Webserver API via HTTP POST ”并处理响应的最佳方法

我连接的是哪种服务?

我的请求标题:

GET /api?foo=1&bar=2 HTTP/1.1
Host: [theservice]
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:39.0) Gecko/20100101 Firefox/39.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: [my cookies]
Connection: keep-alive

回复标题:

HTTP/1.1 200 OK
Date: Tue, 23 Feb 2016 12:58:18 GMT
Content-Type: text/xml
Content-Length: 343
Connection: keep-alive
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: [Cookie data]
Vary: Accept-Encoding
Content-Encoding: gzip
Server: cloudflare-nginx

如果我放入浏览器:

http://theservice/api?foo=1&bar=2

我得到用XML格式化的响应:

<response>
    <validresponse>YES</validresponse>
    <foo>21</foo>
    <bar>21</bar>
</response>

是SOAP,REST,还是未知

2 个答案:

答案 0 :(得分:1)

Rest可以在xml和json中生成响应 。所以我们不能排除REST。 我认为这是非常好的。

答案 1 :(得分:1)

我想说这是未知的。你不能说REST只使用JSON格式,因为它也可以使用XML。你可以说IMO的端点以XML格式返回一些数据。