广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >详解Laravel制作API接口
  • 233
分享到

详解Laravel制作API接口

2024-04-02 19:04:59 233人浏览 泡泡鱼
摘要

需要注意的是:api有它的具体用途,我们应该清楚它是干啥的。访问API的时候应该输入什么。访问过API过后应该得到什么。 在开始设计API时,我们应该注意这8点。后续的开发计划就围绕

需要注意的是:api有它的具体用途,我们应该清楚它是干啥的。访问API的时候应该输入什么。访问过API过后应该得到什么。

在开始设计API时,我们应该注意这8点。后续的开发计划就围绕着这个进行了。

1.Restful设计原则

2.API的命名

3.API的安全

4.API返回数据

5.图片的处理

6.返回的提示信息

7.在线API测试文档

8.在app启动时,调用一个初始化API获取必要的信息

用laravel开发API

就在我上愁着要不要从零开始学习的时候,找到了这个插件dinGo/api那么现在就来安装吧!

首先一定是下载的没错

在新安装好的laravel的composer.JSON加入如下内容

然后打开cmd执行

composer update

在config/app.PHP中的providers里添加

App\Providers\OAuthServiceProvider::class,

Dingo\Api\Provider\LaravelServiceProvider::class,

LucaDegasperi\OAuth2Server\Storage\FluentStorageServiceProvider::class,

LucaDegasperi\OAuth2Server\OAuth2ServerServiceProvider::class,

在aliases里添加


'Authorizer' => LucaDegasperi\OAuth2Server\Facades\Authorizer::class,

修改app/Http/Kernel.php文件里的内容


protected $middleware = [\LucaDegasperi\OAuth2Server\Middleware\OAuthExceptionHandlerMiddleware::class,
];
protected $routeMiddleware = [
 'oauth' => \LucaDegasperi\OAuth2Server\Middleware\OAuthMiddleware::class,
 'oauth-user' => \LucaDegasperi\OAuth2Server\Middleware\OAuthUserOwnerMiddleware::class,
 'oauth-client' => \LucaDegasperi\OAuth2Server\Middleware\OAuthClientOwnerMiddleware::class,
 'check-authorization-params' => \LucaDegasperi\OAuth2Server\Middleware\CheckAuthCodeRequestMiddleware::class,
 'csrf' => \App\Http\Middleware\VerifyCsrfToken::class,
];

然后执行

php artisan vendor:publish

php artisan migrate

在.env文件里添加这些配置

API_STANDARDS_TREE=x

API_SUBTYPE=rest

API_NAME=REST

API_PREFIX=api

API_VERSION=v1

API_CONDITIONAL_REQUEST=true

API_STRICT=false

API_DEBUG=true

API_DEFAULT_FORMAT=json

修改app\config\oauth2.php文件


'grant_types' => [
 'passWord' => [
 'class' => 'League\OAuth2\Server\Grant\PasswordGrant',
 'access_token_ttl' => 604800,
 'callback' => '\App\Http\Controllers\Auth\PasswordGrantVerifier@verify',
 ],
],

新建一个服务提供者,在app/Providers下新建OAuthServiceProvider.php文件内容如下


namespace App\Providers;
   
use Dingo\Api\Auth\Auth;
use Dingo\Api\Auth\Provider\OAuth2;
use Illuminate\Support\ServiceProvider;
   
class OAuthServiceProvider extends ServiceProvider
{
 public function boot()
 {
 $this->app[Auth::class]->extend('oauth', function ($app) {
 $provider = new OAuth2($app['oauth2-server.authorizer']->getChecker());
   
 $provider->setUserResolver(function ($id) {
 // Logic to return a user by their ID.
 });
   
 $provider->setClientResolver(function ($id) {
 // Logic to return a client by their ID.
 });
   
 return $provider;
 });
 }
   
 public function reGISter()
 {
 //
 }
}

然后打开routes.php添加相关路由


//Get access_token
Route::post('oauth/access_token', function() {
 return Response::json(Authorizer::issueAccessToken());
});
   
//Create a test user, you don't need this if you already have.
Route::get('/register',function(){
 $user = new App\User();
 $user->name="tester";
 $user->email="test@test.com";
 $user->password = \Illuminate\Support\Facades\Hash::make("password");
 $user->save();
});
$api = app('Dingo\Api\Routing\Router');
   
//Show user info via restful service.
$api->version('v1', ['namespace' => 'App\Http\Controllers'], function ($api) {
 $api->get('users', 'UsersController@index');
 $api->get('users/{id}', 'UsersController@show');
});
   
//Just a test with auth check.
$api->version('v1', ['middleware' => 'api.auth'] , function ($api) {
 $api->get('time', function () {
 return ['now' => microtime(), 'date' => date('Y-M-D',time())];
 });
});

分别创建BaseController.php和UsersController.php内容如下


//BaseController
namespace App\Http\Controllers;
   
use Dingo\Api\Routing\Helpers;
use Illuminate\Routing\Controller;
   
class BaseController extends Controller
{
 use Helpers;
}
   
//UsersController
namespace App\Http\Controllers;
   
use App\User;
use App\Http\Controllers\Controller;
   
class UsersController extends BaseController
{
   
 public function index()
 {
 return User::all();
 }
   
 public function show($id)
 {
 $user = User::findOrFail($id);
 // 数组形式
 return $this->response->array($user->toArray());
 }
}

随后在app/Http/Controllers/Auth/下创建PasswordGrantVerifier.php内容如下


namespace App\Http\Controllers\Auth;
use Illuminate\Support\Facades\Auth;
   
class PasswordGrantVerifier
{
 public function verify($username, $password)
 {
 $credentials = [
 'email' => $username,
 'password' => $password,
 ];
   
 if (Auth::once($credentials)) {
 return Auth::user()->id;
 }
   
 return false;
 }
}

打开数据库的oauth_client表新增一条client数据


INSERT INTO 'oauth_clients' ('id', 'secret', 'name', 'created_at', 'updated_at') VALUES ('1', '2', 'Main WEBsite', '2016–03–13 23:00:00', '0000–00–00 00:00:00');

随后的就是去愉快的测试了,这里要测试的API有

新增一个用户

http://localhost/register

读取所有用户信息

http://localhost/api/users

只返回用户id为4的信息

http://localhost/api/users/4

获取access_token

http://localhost/oauth/access_token

利用token值获得时间,token值正确才能返回正确值

http://localhost/api/time

打开PostMan

以上就是详解Laravel制作API接口的详细内容,更多关于Laravel制作API接口的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解Laravel制作API接口

本文链接: https://www.lsjlt.com/news/127209.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解Laravel制作API接口
    需要注意的是:API有它的具体用途,我们应该清楚它是干啥的。访问API的时候应该输入什么。访问过API过后应该得到什么。 在开始设计API时,我们应该注意这8点。后续的开发计划就围绕...
    99+
    2022-11-12
  • Laravel如何制作API接口
    这篇文章给大家分享的是有关Laravel如何制作API接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。需要注意的是:API有它的具体用途,我们应该清楚它是干啥的。访问API的时候应该输入什么。访问过API过后应...
    99+
    2023-06-15
  • Laravel使用Apidoc注解自动生成Api接口文档
    本教程从零开始搭建laravel项目,并安装Apidoc扩展及使用注解生成Api接口文档的教程,该扩展支持 多应用/版本、Markdown文档、在线接口调试、接口生成器、代码模板生成器、Mock调试数...
    99+
    2023-09-05
    laravel php doc 后端 api
  • PHP制作一个随机图片API接口
    1.导入 自从网站更换了新主题,默认的随机图片API一个比一个慢,于是自己做一个高速的接口给大家用,顺便把制作的教程分享出来,供大家学习。 2.正文 2.1 API制作 首先我们要在网站的根目录下新建一个PHP文件 名称可以自...
    99+
    2023-10-11
    php 开发语言
  • java中Serializable接口作用详解
    本文为大家解析java中Serializable接口的作用,具体内容如下 1.(serializable)主要支持对象的回复,所以可以用来保存当前的程序系统状态,远程方法调用RMI(远程机器必须含有必要的.class文件,否则将掷...
    99+
    2023-05-31
    java serializable 接口
  • 在Laravel中创建API接口出错怎么办
    这篇文章主要介绍在Laravel中创建API接口出错怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Laravel 中创建了API 接口。 当前端发送POST请求时, 查看 n...
    99+
    2022-10-19
  • laravel怎么实现Dingo-api接管操作
    今天小编给大家分享一下laravel怎么实现Dingo-api接管操作的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。接管Di...
    99+
    2023-07-04
  • 如何设计一个安全的API接口详解
    目录前言一 安全性问题 1.1 调用接口的先决条件-token 1.2 使用POST作为接口请求方式 1.3 客户端IP白名单 1.4 单个接口针对ip限流 1.5 记录接口请求日志...
    99+
    2022-11-12
  • Vue项目API接口封装的超详细解答
    目录前言一、axios是什么?二、API接口封装步骤1.创建拦截器(Interceptor.js)2.创建存放API的文件(http.js)3.使用方法总结前言 我们在开发的过程中,...
    99+
    2022-11-13
  • axios接口管理优化操作详解
    目录强化功能接口文件写法简化任务调度、Loading调度提示信息自由化总结强化功能 本文针对中大型的后台项目的接口模块优化,在不影响项目正常运行的前提下,增量更新。 接口文件写法简...
    99+
    2022-12-15
    axios 接口管理 axios 接口管理优化
  • PHP 接口打包的最佳实践:Laravel 中的步骤详解
    随着互联网的发展,越来越多的应用程序需要通过接口与其他应用程序进行交互。因此,接口开发已经成为了现代应用程序开发的重要组成部分。在 PHP 中,Laravel 是一个非常流行的框架,它提供了许多工具和方法来简化接口开发。在本文中,我们将介...
    99+
    2023-11-14
    laravel 接口 打包
  • 详解docker API管理接口增加CA安全认证
    目录一、模拟创建CA证书(中间边框的部分)二、签发服务器端证书(右边蓝色背景部分)三、签发客户端证书(左边黄色背景的部分)四、签发证书收尾工作五、配置docker服务端六、IDEA配...
    99+
    2022-11-13
  • spring BeanProcessor接口详解
    目录1. 简单认识BeanProcessorBeanProcessor的理解一个BeanProcessor的使用实例2. BeanProcessor的实现思路和简化实例BeanPro...
    99+
    2022-11-12
  • 第四章 SpringMVC--Controller接口控制器详解(3)
    11、AbstractWizardFormController向导控制器类提供了多步骤(向导)表单的支持(如完善个人资料时分步骤填写基本信息、工作信息、学校信息等)假设现在做一个完善个人信息的功能,分三个页面展示:页面1完善基本信息;页面2...
    99+
    2023-06-03
  • 怎么理解MySQL的API接口
    这篇文章给大家介绍怎么理解MySQL的API接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 MySQL 的 API 接口为了方便应用程序的开发,MyS...
    99+
    2022-10-19
  • Gointerface接口声明实现及作用详解
    目录什么是接口接口的定义与作用接口的声明和实现接口的声明接口的实现接口类型断言空接口接口实际用途通过接口实现面向对象多态特性通过接口实现一个简单的 IoC (Inversion of...
    99+
    2023-03-14
    Go interface接口声明实现 Go interface
  • SpringBoot使用swagger生成api接口文档的方法详解
    目录前言具体例子maven配置项目application.yml配置springApplication添加swagger注解在控制层添加swagger注解前言 在之前的文章中,使用m...
    99+
    2022-11-13
    SpringBoot swagger生成api接口文档 SpringBoot 生成api接口文档 SpringBoot swagger
  • Java中Future接口详解
    目录一、背景二、Future接口1、入门案例2、Future接口三、CompletableFuture类1、基础说明2、核心方法2.1 实例方法2.2 计算方法2.3 结果获取方法2...
    99+
    2023-05-16
    Java中Future接口 Java Future
  • Golang函数的接口和访问控制的详解
    Golang作为一门快速、高效的编程语言,广受开发者的青睐。在Golang中,函数是非常重要的组成部分,函数可以是公共的,也可以是私有的。在本文中,我们将会深入探讨Golang函数的接口和访问控制,以便更好地理解Golang的开发模式和最佳...
    99+
    2023-05-16
    Golang 函数接口 访问控制
  • Nestjs自定义注解实现接口权限控制详解
    目录正文定义角色枚举声明自定义注册(装饰器)实现角色守卫 RolesGuard在 providers 中引入 RolesGuard使用注解正文 当业务接口开发完成之后,正式上线之前还...
    99+
    2022-12-08
    Nestjs注解接口权限 Nestjs自定义注解权限控制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作