0:简介
API(应用程序接口),我现在正在做一个安卓项目,需要将mysql数据库里的数据,通过api接口以json格式导出,然后再安卓上解析和使用。
API项目基于php服务器和laravel框架,这个框架听说比较适合做api,当然由于项目简单,我做的API省去了很多验证相关的内容,普通的框架类似thinkphp也能做,这里用laravel为了方便后期补足API的相关内容。
1:域名和LAMP
专用于api的域名建议采用类似于api.example.com这样的三级域名,LAMP这四个网站服务器是必须的。
2:laravel安装
使用宝塔面板安装好的php,已经自带composer,若没有composer需要先安装。
没有数据库需要先创建数据库。
然后在网站目录下例如/var/www,运行指令
composer create-project laravel/laravel MyProject "5.1.*"
安装laravel。根据提示连接数据库。
3:新建laravel控制器
控制器就是当我们访问url时,服务器将运行控制器内的程序,然后返回给浏览器一个内容,这个内容可以是html代码,当然也可以时xml或者json。
在laravel安装目录运行php artisan make:controller Api/LinkController
新建一个名叫LinkController控制器,此时在将在app/Http/Controllers/Api
目录下生成一个LinkController.php`文件。打开文件编辑我们想要的程序。
1 | ]() |
4:修改路由
在上面注释中我们看到,要通过searchlinks方法返回一个json数组,url为https://api.example.com/linkcontroller/searchlinks?type=电影&kw=中国机长
非常的长,而且不利于我们后期管理api版本。
在routes
目录下的api.php
是专门用来写Api接口的路由,打开它
1 | ]() |
namespace('Api')
指定了命名空间,控制器命名空间只要不是在App\Http\Controllers
下,都需要进一步指明其命名空间,比如LinkController命名空间为App\Http\Controllers\Api
。prefix为前缀,我们用来控制版本,group表示,后面的地址拥有相同的命名空间和前缀。
修改后的带参数url变为https://api.example.com/api/v1/search?type=电影&kw=中国机长
不带参数的url变为https://api.example.com/api/v1/type
5:总结
修改路由后,通过访问链接https://api.example.com/api/v1/search?type=电影&kw=中国机长
就可以获得从数据库获取的值了。
下篇讲解使用okhttp和gson获取并解析api里的json数组。