在您自己的环境中创建一个非常简单的表单(不需要样式) 使用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,还是未知?
答案 0 :(得分:1)
Rest可以在xml和json中生成响应 。所以我们不能排除REST。 我认为这是非常好的。
答案 1 :(得分:1)
我想说这是未知的。你不能说REST只使用JSON格式,因为它也可以使用XML。你可以说IMO的端点以XML格式返回一些数据。