mysql连接测试不成功的原因有哪些
306
2023-02-03
本文目录一览:
下面做一个开发 API 接口的简单实例:
从 articles 表,通过 id 获取一篇文章。
访问该接口的 URL:
1
http://www.e.com/articles/details?id=1
数据库表结构如下:
1
2
3
4
5
6
7
CREATE TABLE `articles` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`content` varchar(255) NOT NULL,
`dateline` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
第一步
修改数据库配置文件,MixPHP 的应用配置文件中,关于数据库的信息都引用了 common/config/database.php 文件。
第二步
修改应用配置文件:
修改 Response 组件默认输出格式为 JSON 格式。
修改 404/500 错误输出格式为 JSON 格式。
框架默认的 404/500 响应是网页,而 API 服务需要响应 JSON 数据,通常其api接口开发实例他传统 MVC 框架需要修改很多地方才可完成这个需求,MixPHP 本身就提供该种配置,只需修改一下配置即可。
MixPHP 的默认 Web 应用中有两个配置文件,分别为:
main.php : 部署在 mix-httpd 时使用。
main_compatible.php :部署在 Apache/PHP-FPM 时使用。
开发 API 时我们推荐在 Apache/PHP-FPM 下开发,上线再部署至 mix-httpd 即可,反正是无缝切换的。
现在我们修改 response 键名下的 defaultFormat 键为 mix\http\Error::FORMAT_JSON,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 响应
'response' = [
// 类路径
'class' = 'mix\http\compatible\Response',
// 默认输出格式
'defaultFormat' = mix\http\Response::FORMAT_JSON,
// json
'json' = [
// 类路径
'class' = 'mix\http\Json',
],
// jsonp
'jsonp' = [
// 类路径
'class' = 'mix\http\Jsonp',
// callback键名
'name' = 'callback',
],
// xml
'xml' = [
// 类路径
'class' = 'mix\http\Xml',
],
],
然后修改 main_compatible.php 文件中 error 键名下的 format 键为 mix\http\Error::FORMAT_JSON,如下:
1
2
3
4
5
6
7
// 错误
'error' = [
// 类路径
'class' = 'mix\http\Error',
// 输出格式
'format' = mix\http\Error::FORMAT_JSON,
],
第三步
创建控制器:
1
apps/index/controllers/ArticlesController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
namespace apps\index\controllers;
use mix\facades\Request;
use mix\http\Controller;
use apps\index\messages\ErrorCode;
use apps\index\models\ArticlesForm;
class ArticlesController extends Controller
{
public function actionDetails()
{
// 使用模型
$model = new ArticlesForm();
$model-attributes = Request::get();
$model-setScenario('actionDetails');
if (!$model-validate()) {
return ['code' = ErrorCode::INVALID_PARAM];
}
// 获取数据
$data = $model-getDetails();
if (!$data) {
return ['code' = ErrorCode::ERROR_ID_UNFOUND];
}
// 响应
return ['code' = ErrorCode::SUCCESS, 'data' = $data];
}
}
创建错误码类:
1
apps/index/messages/ErrorCode.php
1
2
3
4
5
6
7
8
9
10
11
12
<?php
namespace apps\index\messages;
class ErrorCode
{
const SUCCESS = 0;
const INVALID_PARAM = 100001;
const ERROR_ID_UNFOUND = 200001;
}
创建表单验证模型:
1
apps/index/models/ArticlesForm.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
namespace apps\index\models;
use mix\validators\Validator;
use apps\common\models\ArticlesModel;
class ArticlesForm extends Validator
{
public $id;
// 规则
public function rules()
{
return [
'id' = ['integer', 'unsigned' = true, 'maxLength' = 10],
];
}
// 场景
public function scenarios()
{
return [
'actionDetails' = ['required' = ['id']],
];
}
// 获取详情
public function getDetails()
{
return (new ArticlesModel())-getRowById($this-id);
}
}
创建数据表模型:
1
apps/common/models/ArticlesModel.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
namespace apps\common\models;
use mix\facades\RDB;
class ArticlesModel
{
const TABLE = 'articles';
// 获取一行数据通过id
public function getRowById($id)
{
$sql = "SELECT * FROM `" . self::TABLE . "` WHERE id = :id";
$row = RDB::createCommand($sql)-bindParams([
'id' = $id,
])-queryOne();
return $row;
}
}
以上就是全部代码的编写。
API(Application Programming Interface,应用程序接口),一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
API主要提供通用功能集。API同时也是一种中间件,为各种不同平台提供数据共享。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。
扩展资料
应用程序接口原理
在数据封装时,网络分层中的每个层相互之间会用接口进行交互并提供服务,其中应用层与用户之间的接口称之为应用程序接口(API,Application Programming Interface)。
API实际上是一种功能集合,也可说是定义、协议的集合,无论是那种集合,它的实质都是通过抽象为用户屏蔽实现上的细节和复杂性。
从用户角度看应用程序接口,表现为一系列API函数,用户可以使用这些函数进行网络应用程序开发。从网络角度看,应用程序接口给用户提供了一组方法,用户可以使用这组方法向应用层发送业务请求、信息和数据,网络中的各层则依次响应,最终完成网络数据传输。
参考资料来源:百度百科-应用程序接口
参考资料来源:百度百科-api
一些刚开始写接口文档的服务端同学,很容易按着代码的思路去编写接口文档,这让客户端同学或者是服务对接方技术人员经常吐槽,看不懂接口文档。这篇文章提供一个常规接口文档的编写方法,给大家参考。
推荐使用的是docway 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。
一、请求参数
1. 请求方法
GET
用于获取数据
POST
用于更新数据,可与PUT互换,语义上PUT支持幂等
PUT
用于新增数据,可与POST互换,语义上PUT支持幂等
DELETE
用于删除数据
其他
其他的请求方法在一般的接口中很少使用。如:PATCH HEAD OPTIONS
2. URL
url表示了接口的请求路径。路径中可以包含参数,称为地址参数,如**/user/{id}**,其中id作为一个参数。
3. HTTP Header
HTTP Header用于此次请求的基础信息,在接口文档中以K-V方式展示,其中Content-Type则是一个非常必要的header,它描述的请求体的数据类型。
常用的content-type:
application/x-www-form-urlencoded
请求参数使用“”符号连接。
application/json
内容为json格式
application/xml
内容为xml格式
multipart/form-data
内容为多个数据组成,有分隔符隔开
4. HTTP Body
描述http body,依赖于body中具体的数据类型。如果body中的数据是对象类型。则需要描述对象中字段的名称、类型、长度、不能为空、默认值、说明。以表格的方式来表达最好。
示例:
二、响应参数
1. 响应 HTTP Body
响应body同请求body一样,需要描述请清除数据的类型。
另外,如果服务会根据不同的http status code 返回不同的数据结构, 也需要针对不同的http status code对内容进行描述。
三、接口说明
说明接口的应用场景,特别的注意点,比如,接口是否幂等、处理是同步方式还是异步方式等。
四、示例
上个示例(重点都用红笔圈出来,记牢了):
五、接口工具
推荐使用的是http://docway.net(以前叫小幺鸡) 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。
关于api接口开发实例和API接口技术的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 api接口开发实例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于API接口技术、api接口开发实例的信息别忘了在本站进行查找喔。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~