所以,我正在浏览一些关于创建REST API的文章.其中一些建议使用所有类型的HTTP请求:比如PUT DELETE POST GET.我们将创建例如index.php并以这种方式编写API:
$method = $_SERVER['REQUEST_METHOD'];
$request = split("/", substr(@$_SERVER['PATH_INFO'], 1));
switch ($method) {
case 'PUT':
....some put action....
break;
case 'POST':
....some post action....
break;
case 'GET':
....some get action....
break;
case 'DELETE':
....some delete action....
break;
}
Run Code Online (Sandbox Code Playgroud)
好的,授予 - 我对Web服务还不太了解(还).但是,通过常规或(包含方法名称和所有参数)接受JSON对象并不是更容易,然后也以JSON响应.我们可以通过PHP轻松地序列化/反序列化,并且可以使用该数据执行任何操作,而无需处理不同的HTTP请求方法.POSTGETjson_encode()json_decode()
我错过了什么吗?
更新1:
好的 - 在深入研究各种API并学习了很多关于XML-RPC,JSON-RPC,SOAP,REST后,我得出结论,这种类型的API是合理的.实际上堆栈交换几乎在他们的站点上使用这种方法,我认为这些人知道他们正在做什么Stack Exchange API.
我正在学习 AWS,并且正在深入研究 API Gateway。但我不清楚API网关中资源和方法之间的区别。我的想法是方法是资源的一部分,并且它们面向客户。而资源是一个更广泛的类别,涉及更多内容。如果有人可以帮助我以更简单和直观的方式识别它们之间的区别,我将不胜感激。我已经浏览了文档和一些 YouTube 视频。
我是REST新手,刚开始阅读一些教程.
让我感到困惑的一件事是:txt/xml/json形式的内容:资源还是资源表示?必须是后者,对吗?由于资源可以是视频,音频或其他MIME类型.
以下面的例子为例.假设我给出的描述类似于"RESTful服务,其中User是使用以下XML格式表示的资源":
<user>
<id>1</id>
<name>Mahesh</name>
<profession>Teacher</profession>
</user>
Run Code Online (Sandbox Code Playgroud)
或JSON格式:
{
"id":1,
"name":"Mahesh",
"profession":"Teacher"
}
Run Code Online (Sandbox Code Playgroud)
然后,当我使用HTTP GET访问资源时,我实际上会得到什么数据?我得到'1,Mahesh,老师',因为这是排除格式的真实数据,还是我得到包含数据和数据表示的整个xml或json'对象'?
如果用户有图像属性怎么办?HTTP将什么样的"包"以及以何种形式提供给我:图像本身或图像的链接?
编辑
另一个例子:
我应该理解返回的资源本身是XML文件,或者资源不是XML文件,但是嵌入在XML资源表示中的一些数据是?
如果我想要的资源包含图像,视频等怎么办?那些不是可以嵌入XML或JSON格式的文本数据 - 在这种情况下,我得到了什么?