api接口开发实例(API接口技术)

网友投稿 306 2023-02-03

本篇文章给大家谈谈api接口开发实例,以及API接口技术对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享api接口开发实例的知识,其中也会对API接口技术进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何使用MixPHP来开发API接口

下面做一个开发 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;

}

}

   

以上就是全部代码的编写。

php如何开发API接口

比如一个自定义函数:function test(){echo ‘hello world’;}就可以叫做 api。api 既可以是单个的函数api接口开发实例,也可以是封装在类里的方法api接口开发实例,当然它们也是程序代码。开发一个 api 的流程可以很简单,也可以很复杂,视具体的编程任务而决定,并没有特定的规则。比如,你需要为自己建立一个常用的函数库,命名为 my.lib.php然后把你自己编写的自定义函数,全部写在这个文件里面,那么,你就拥有api接口开发实例了自己的api。开发的时候,只需要引入 my.lib.php,你就可以调用自己的 api api接口开发实例了。这是一个比较简单的例子。稍微复杂一点的,你可以把函数封装在类里面,方便继承和重用,还可以根据函数名称做一些程序设计,这个一句话说不清楚,给一个简单的例子吧:class mylib{function showmy(){echo ‘这是我的一个类方法’;}}调用的时候,先要实例化类,然后再调用方法。再复杂一点的就是使用类接口,区别就是接口里面定义的只是方法原型,而你需要通过具体的类来实现接口中的函数,具体请参考 php 手册

API是什么,可以应用于哪些地方,有例子吗

API(Application Programming Interface,应用程序接口),一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。

API主要提供通用功能集。API同时也是一种中间件,为各种不同平台提供数据共享。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。



扩展资料

应用程序接口原理

在数据封装时,网络分层中的每个层相互之间会用接口进行交互并提供服务,其中应用层与用户之间的接口称之为应用程序接口(API,Application Programming Interface)。

API实际上是一种功能集合,也可说是定义、协议的集合,无论是那种集合,它的实质都是通过抽象为用户屏蔽实现上的细节和复杂性。

从用户角度看应用程序接口,表现为一系列API函数,用户可以使用这些函数进行网络应用程序开发。从网络角度看,应用程序接口给用户提供了一组方法,用户可以使用这组方法向应用层发送业务请求、信息和数据,网络中的各层则依次响应,最终完成网络数据传输。

参考资料来源:百度百科-应用程序接口

参考资料来源:百度百科-api

asp.net mvc3 项目怎么开发API接口?

Visual Studio为我们提供了专门用于创建ASP.NET Web API应用的项目模板,借助于此项目模板提供的向导,我们可以“一键式”创建一个完整的ASP.NET Web API项目。在项目创建过程中,Visual Studio会自动为我们添加必要的程序集引用和配置,甚至会为我们自动生成相关的代码,总之一句话:这种通过向导生成的项目在被创建之后其本身就是一个可执行的应用。
对于IDE提供的这种旨在提高生产效率的自动化机制,我个人自然是推崇的,但是我更推荐读者朋友们去了解一下这些自动化机制具体为我们做了什么?做这些的目的何在?哪些是必需的,哪些又是不必要的?正是基于这样的目的,在接下来演示的实例中,我们将摒弃Visual Studio为我们提供的向导,完全在创建的空项目中编写我们的程序。这些空项目体现在如右图所示的解决方案结构中。
如右图所示,整个解决方案一共包含6个项目,上面介绍的作为“联系人管理器”的单页Web应用对应着项目WebApp,下面的列表给出了包括它在内的所有项目的类型和扮演的角色。
·Common:这是一个空的类库项目,仅仅定义了表示联系人的数据类型而已。之所以将数据类型定义在独立的项目中,只要是考虑到它会被多个项目(WebApi和ConsoleApp)所使用。
WebApi:这是一个空的类库项目,表现为HttpController类型的Web API就定义在此项目中,它具有对Common的项目引用。
WebHost:这是一个空的ASP.NET Web应用,它实现了针对ASP.NET Web API的Web Host寄宿,该项目具有针对WebApi的项目引用。
SelfHost:这是一个空的控制台应用,旨在模拟ASP.NET Web API的Self Host寄宿模式,它同样具有针对WebApi的项目引用。
WebApp:这是一个空的ASP.NET Web应用,代表“联系人管理器”的网页就存在于该项目之中,至于具体的联系人管理功能,自然通过以Ajax的形式调用Web API来完成。
ConsoleApp:这是一个空的控制台应用,我们用它来模拟如何利用客户端代理来实现对Web API的远程调用,它具有针对Common的项目引用。
二、定义Web API
在正式定义Web API之前,我们需要在项目Common中定义代表联系人的数据类型Contact。简单起见,我们仅仅为Contact定义了如下几个简单的属性,它们分别代表联系人的ID、姓名、联系电话、电子邮箱和联系地址。
1: public class Contact
2: {
3: public string Id { get; set; }
4: public string Name { get; set; }
5: public string PhoneNo { get; set; }
6: public string EmailAddress { get; set; }
7: public string Address { get; set; }
8: }
表现为HttpController的Web API定义在WebApi项目之中,我们一般将ApiController作为继承的基类。ApiController定义在“System.Web.Http.dll”程序集中,我们可以在目录“%ProgramFiles%\Microsoft ASP.NET\ASP.NET Web Stack 5\Packages\”中找到这个程序集。具体来说,该程序集存在于子目录“Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45”中。
Web API体现在如下所示的ContactsController类型中。在该类型中,我们定义了Get、Post、Put和Delete这4个Action方法,它们分别实现了针对联系人的查询、添加、修改和删除操作。Action方法Get具有一个表示联系人ID的可缺省参数,如果该参数存在则返回对应的联系人,否则返回整个联系人列表。由于ASP.NET Web API默认实现了Action方法与HTTP方法的映射,所以方法名也体现了它们各自所能处理请求必须采用的HTTP方法。
1: public class ContactsController: ApiController
2: {
3: static List<Contact contacts;
4: static int counter = 2;
5:
6: static ContactsController()
7: {
8: contacts = new List<Contact();
9: contacts.Add(new Contact { Id = "001", Name = "张三",
10: PhoneNo = "0512-12345678", EmailAddress = "zhangsan@gmail.com",
11: Address = "江苏省苏州市星湖街328号" });
12: contacts.Add(new Contact { Id = "002", Name = "李四",
13: PhoneNo = "0512-23456789", EmailAddress = "lisi@gmail.com",
14: Address = "江苏省苏州市金鸡湖大道328号" });
15: }
16:
17: public IEnumerable<Contact Get(string id = null)
18: {
19: return from contact in contacts
20: where contact.Id == id || string.IsNullOrEmpty(id)
21: select contact;
22: }
23:
24: public void Post(Contact contact)
25: {
26: Interlocked.Increment(ref counter);
27: contact.Id = counter.ToString("D3");
28: contacts.Add(contact);
29: }
30:
31: public void Put(Contact contact)
32: {
33: contacts.Remove(contacts.First(c = c.Id == contact.Id));
34: contacts.Add(contact);
35: }
36:
37: public void Delete(string id)
38: {
39: contacts.Remove(contacts.First(c = c.Id == id));
40: }
41: }
简单起见,我们利用一个静态字段(contacts)表示存储的联系人列表。当ContactsController类型被加载的时候,我们添加了两个ID分别为“001”和“002”的联系人记录。至于实现联系人CRUD操作的Action方法,我们也省略了必要的验证,对于本书后续的演示的实例,我们基本上也会采用这种“简写”的风格。

怎么写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小时内删除侵权内容。

上一篇:@CacheEvict 清除多个key的实现方式
下一篇:@Cacheable 拼接key的操作
相关文章

 发表评论

暂时没有评论,来抢沙发吧~