我正在创建我的第一个API,如果向它传递了两个值,我将得到JSON格式的响应.该数字将通过POST作为参数传递.使用cURL或任何可用的POST方法.

尽管这是一个非常基本的问题,但我想知道最佳实践,并且API应该基于模型控制器创建.不仅仅是简单的PHP.

我在谷歌上搜索了很多REST API教程.他们很好,我也学到了一些知识.

但是我想要一个代码的示例模型,这样我就可以引用它并构建我自己的,当然,这个示例是在标准实践中制作一个真正的睡觉应用编程接口.

如果你问我试过什么,那会很有趣,作为一个初学者,我能做的就是:

$num1 = $_REQUEST['num1'];
$num2 = $_REQUEST['num2'];

$total = $num1 + $num2;
echo json_encode($total);

当然,这永远不能称为API,但仍然如此.如果我对此进行POST响应,我希望来自睡觉API的响应为json.我应该也可以通过睡觉控制台进行测试,这样我就可以得到标准的响应了.

请给我提供一个非常基本但标准的RESTful API.

推荐答案

In your example, it’s fine as it is: it’s simple and works. The only things I’d suggest are:

  1. validating the data POSTed
  2. make sure your API is sending the Content-Type header to tell the client to expect a JSON response:

    header('Content-Type: application/json');
    echo json_encode($response);
    

除此之外,API是接受输入并提供输出的东西."过度设计"事情是可能的,因为你会让事情变得更复杂.

If you wanted to go down the route of controllers and models, then read up on the MVC pattern and work out how your domain objects fit into it. Looking at the above example, I can see maybe a MathController with an add() action/method.

GitHub上有几个RESTful API的起点项目值得一看.

Json相关问答推荐

使用Powershell脚本将配置信息块添加到json文件

将json数组反序列化为选项 struct

使用单元和非单元版本反序列化Rust中的枚举,而无需编写自定义反序列化程序

组合不同属性的Jolt Spec

导致此 Kotlin Retrofit2 错误的可能原因有哪些?

Ansible - 将文件内容添加到字典中

如何将该 JSON 解析为 Kotlin 类?

下一个 Js 部署在 getStaticPath 函数上失败:在 JSON.parse 的位置 0 的 JSON 中出现意外的令牌 < 但在本地运行

如果 jq 数组中的字符串是对象或字符串,则获取值

Jolt - 在同一级别添加时组合值的问题

将 ES6 类对象序列化为 JSON

在 Apache Spark 中读取多行 JSON

Java JSON 序列化 - 最佳实践

在 Postgres 中向 JSON 对象添加元素

使用绝对或相对路径在 curl 请求中发送 json 文件

使用杰克逊创建一个 json 对象

如何使用 Newtonsoft.Json 包在 C#(4.0) 中解析我的 json 字符串?

从 VS 2017 Azure Function 开发中的 local.settings.json 读取值

将循环 struct 转换为 JSON - 有什么方法可以找到它抱怨的字段?

春天:返回@ResponseBodyResponseEntity>