`
sillycat
  • 浏览: 2552433 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

PHP(8)RESTful - Model Route Controller - Simple Example

 
阅读更多
PHP(8)RESTful - Model Route Controller - Simple Example

All the sample and details are in project easyphprest project.

1. Model
I am using the default things, so I directly create a Class named Book under app/Book.php
<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Book extends Model
{

     protected $fillable = ['title', 'author', 'isbn'];

}
?>

2. Route
Under directory app/Http/, there is a file routes.php, It will take care of all the routes configurations.

$app->get('/', function() use ($app) {
    return $app->welcome();
});

$app->group(['prefix' => 'api/v1', 'namespace' => 'App\Http\Controllers'], function($app){
    $app->get('book', 'BookController@index');
    $app->get('book/{id}', 'BookController@getbook');
    $app->post('book', 'BookController@createBook');
    $app->put('book/{id}', 'BookController@updateBook');
    $app->delete('book/{id}', 'BookController@deleteBook');
});

It will mapping all the requests to Controller, formatted and received all the parameters. That is exactly what the framework should do for us. It is quite similar to other frameworks in java/scala/python.

3. Controller
The actually controller is app/Http/Controllers/BookController.php

<?php

namespace App\Http\Controllers;

use App\Book;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class BookController extends Controller{

public function index(){
     $Books = Book::all();
     return response()->json($Books);
}

public function getBook($id){
     $Book = Book::find($id);
     return response()->json($Book);
}

public function createBook(Request $request){
     $Book = Book::create($request->all());
     return response()->json($Book);
}

public function deleteBook($id){
     $Book = Book::find($id);
     $Book->delete();

     return response()->json('deleted');
}

public function updateBook(Request $request, $id){
     $Book = Book::find($id);

     $Book->title = $request->input('title');
     $Book->author = $request->input('author');
     $Book->isbn = $request->input('isbn');
     $Book->save();

     return response()->json($Book);
}

}
?>

That is just basic implementation, we may need validation and other logic there. The good things is that there is the simple ORM in this framework as well. I did not take care of any DAO logic now.

Command to start our service
> php artisan serve

Then, we can directly use POST man to test all our things.
I do not know how long this shared link will work, I will just paste it here.
https://www.getpostman.com/collections/e3273823c70a058eedfe

References:
http://coderexample.com/restful-api-in-lumen-a-laravel-micro-framework/
http://sillycat.iteye.com/blog/2238841
分享到:
评论

相关推荐

    Restful-Service-And-Restful-Client-master.zip

    本项目"Restful-Service-And-Restful-Client-master.zip"提供了RESTful风格的服务端和客户端的框架,旨在帮助开发者快速构建自己的RESTful API。 服务端部分: 1. **C#框架**:项目可能使用了C#语言进行开发,C#是...

    instrumented-restful-fast-request-pro-2023.1.7.1 可用版

    instrumented-restful-fast-request-pro-2023.1.7.1 可用版,亲测,可用。

    restful-crud-实验.tar.gz

    这个名为"restful-crud-实验.tar.gz"的压缩包文件显然是一个教学资源,旨在帮助学习者理解如何在SpringBoot应用中实现基于REST的创建(Create)、读取(Read)、更新(Update)和删除(Delete)功能。 首先,我们要...

    PyPI 官网下载 | flask-restful-swagger-3-0.2.0.tar.gz

    使用Flask-Restful-Swagger-3,开发者只需在资源类上添加`@swagger.model`和`@api.representation`等装饰器,即可自动为API接口生成详细文档。同时,`@api.doc`装饰器可以用来添加额外的描述信息,使API接口的意图...

    SAP-BO-Restful-SDK-开发指导手册

    SAP-BO-Restful-SDK-开发指导手册

    simple-restful-api-php-源码.rar

    本资源"simple-restful-api-php-源码.rar"提供了一个简单的RESTful API的实现,它可以帮助初学者理解RESTful API的设计原则和PHP在其中的应用。 【描述】:这个压缩包包含了一个基于PHP实现的简单RESTful API的源...

    laravel-restful-api-starter, 使用 Laravel 和MongoDB构建一个 RESTful API.zip

    laravel-restful-api-starter, 使用 Laravel 和MongoDB构建一个 RESTful API #Laravel Restful API启动程序现在查看一下 WIKI !欢迎捐赠对于代码和 doc: ) !是什么?这里启动器基于以下功能:Laravel 4.2: 使用轻...

    restful-crud-实验.rar

    spring boot学习的web开发课程资源 spring boot学习的web开发课程资源 spring boot学习的web开发课程资源 spring boot学习的web开发课程资源 spring boot学习的web开发课程资源 spring boot学习的web开发课程...

    Delphi-Restful-Test-PHP

    本项目“Delphi-Restful-Test-PHP”专注于演示如何使用PHP来调用由Delphi开发的数据Snap/RESTful接口服务。下面我们将详细探讨相关知识点。 1. **RESTful API**: REST(Representational State Transfer,表述性...

    PyPI 官网下载 | django-restful-admin-1.0.1.tar.gz

    标题中的"PyPI 官网下载 | django-restful-admin-1.0.1.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的开源软件包,名为`django-restful-admin`,版本为1.0.1,其源代码以`.tar.gz`格式提供。...

    simple-restful-api-源码.rar

    "simple-restful-api-源码.rar"提供了一个简单的RESTful API的源代码示例,我们可以从中学习到如何设计和实现这种接口。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP...

    struct2-restful-Demo

    Struts2是一个非常流行的Java Web开发框架,它主要用于构建企业级的MVC(Model-View-Controller)应用程序。Restful是REST(Representational State Transfer)风格的缩写,是一种网络应用程序的设计风格和开发方式...

    web-restful-demo

    【标题】"web-restful-demo" 是一个基于Maven构建的项目,主要目的是演示如何使用Apache CXF框架来发布RESTful服务。RESTful服务是一种Web服务设计风格,它遵循 Representational State Transfer(表述性状态转移)...

    Java-RESTful-Web-Service.rar

    Java-RESTful-Web-Service.rar

    Python库 | flask-restful-crud-0.0.1.tar.gz

    《Python库Flask-RESTful-CRUD:构建高效后端API》 在现代Web开发中,后端接口的设计和实现至关重要。Python作为一门广泛应用于Web开发的语言,提供了丰富的库来帮助开发者快速构建功能强大的应用。其中,Flask框架...

    Restful Fast Request插件逆向

    本资源类似于 Postman 的 IDEA 插件Restful Fast Request,在IDEA安装该插件后,找到插件安装目录,【C:\\... API Buddy\\lib】替换掉里面的jar文件【instrumented-restful-fast-request-pro-2023.1.7.1.jar】即可使用

    RESTful-php-example:用PHP实现的RESTful API的示例

    在这个“RESTful-php-example”项目中,我们将深入探讨如何使用PHP来实现符合RESTful原则的API。 首先,RESTful的核心概念是资源(Resource)。在Web服务中,资源通常代表服务器上的某种数据或功能,如用户、文章、...

    restful-react:与RESTful后端交互的一致,声明式方式,具有Swagger和OpenAPI规范的代码生成功能:fire:

    restful-react 构建与RESTful API交互的React应用程序会带来一系列问题,挑战和潜在陷阱。 该项目旨在消除此类陷阱,并在制作此类应用程序时为开发人员提供愉悦的体验。 可以将它视为React组件和挂钩形式的的薄包装...

    spring-boot-restful-crud-01.zip

    Java SpringBoot 课程 restful crud 实验资源 ...GitHub中有源码 https://github.com/kevinkda/MarkdownRepository/tree/master/Develop%20Demo/Java%20Framework/Spring/SpringBoot/spring-boot-restful-crud-01

    Restful-controller小火箭

    Restful Fast Request插件逆向 版本不是最新的,最新的版需要重新反编译。 idea插件市场下载好最新版的插件后 C:\Users\aa\AppData\Roaming\JetBrains\IntelliJIdea2023.3\plugins\Restful Fast Request - API Buddy...

Global site tag (gtag.js) - Google Analytics