使用Slim框架实现基本的REST API

REST API是一种广泛应用于服务器和客户端之间的网络通信接口设计风格。首先要明确的是,REST是一种API设计风格,或是理解成一种设计思想,而不是一个具体的技术、编程语言等(有点类似于模块化编程思想)。本文参考了一篇国外的文章,简单介绍了使用Slim框架实现基本REST API的过程。

本文参考文章 《How
to create REST API for Android app using PHP, Slim and MySQL》

本文源码可在GitHub下载: https://github.com/jzj1993/Slim-REST-API

需要准备的工具和环境

  • USBWebServer / XAMPP或其他支持PHP的服务器站点软件包(Apache,PHP,MySQL)

    可参考《USBWebserver:快速搭建本地PHP环境的好工具》 http://www.hainter.com/usbwebserver

  • Chrome浏览器 + Advanced Rest Client插件(或其他REST API测试工具)
  • Slim框架程序包,Composer(Slim已经包含在附件的工程源码中,Composer可以不安装)
  • PHP编辑器:例如NetBeans,SublimeText等

新建数据库和数据表

进入phpmyAdmin数据库管理页面,执行如下SQL指令,新建数据库,并初始化数据表。

  1. CREATE
    DATABASE task_manager;
  2. USE
    task_manager;
  3. CREATE
    TABLE IF NOT EXISTS `users` (
  4. `id` int(11) NOT
    NULL AUTO_INCREMENT,
  5. `name` varchar(250) DEFAULT
    NULL,
  6. `email` varchar(255) NOT
    NULL,
  7. `password_hash` text
    NOT NULL,
  8. `api_key` varchar(32) NOT
    NULL,
  9. `status` int(1) NOT
    NULL DEFAULT ‘1‘,
  10. `created_at` timestamp
    NOT NULL DEFAULT CURRENT_TIMESTAMP,
  11. PRIMARY
    KEY (`id`),
  12. UNIQUE
    KEY `email` (`email`)
  13. );
  14. CREATE
    TABLE IF NOT EXISTS `tasks` (
  15. `id` int(11) NOT
    NULL AUTO_INCREMENT,
  16. `task` text
    NOT NULL,
  17. `status` int(1) NOT
    NULL DEFAULT ‘0‘,
  18. `created_at` timestamp
    NOT NULL DEFAULT CURRENT_TIMESTAMP,
  19. PRIMARY
    KEY (`id`)
  20. );
  21. CREATE
    TABLE IF NOT EXISTS `user_tasks` (
  22. `id` int(11) NOT
    NULL AUTO_INCREMENT,
  23. `user_id` int(11) NOT
    NULL,
  24. `task_id` int(11) NOT
    NULL,
  25. PRIMARY
    KEY (`id`),
  26. KEY `user_id` (`user_id`),
  27. KEY `task_id` (`task_id`)
  28. );
  29. ALTER
    TABLE `user_tasks` ADD FOREIGN KEY ( `user_id` ) REFERENCES `task_manager`.`users` (
  30. `id`
  31. ) ON
    DELETE CASCADE ON UPDATE CASCADE ;
  32. ALTER
    TABLE `user_tasks` ADD FOREIGN KEY ( `task_id` ) REFERENCES `task_manager`.`tasks` (
  33. `id`
  34. ) ON
    DELETE CASCADE ON UPDATE CASCADE;

编写程序

由于参考文章中已经对程序进行了介绍,这里跳过此步骤,直接解压源文件到服务器站点的根目录。根据数据库的登录密码,将include/Config.php中数据库的用户名、密码进行修改。

测试

启动服务器,输入如下网址可进入Slim欢迎界面 http://localhost/libs

从浏览器直接输入网址,可进入默认的HelloWorld界面 http://localhost/v1

使用Chrome插件进行REST API测试

根据参考文章中的内容,这里测试register的API,其他API的测试方法一样。启动Chrome的插件Advanced Rest Client,填写相关数据。其中API的网址如下,在Payload中添加字段name,email,password,选择POST方法;最后点击Send按钮,即可发送数据到服务器端。

http://localhost/v1/register

经过处理,就会返回注册成功的消息,如图。

在phpmyAdmin中可以看到,新注册的用户信息已经保存在数据库中了。

本文由jzj1993原创,转载请注明来源:http://www.hainter.com/slim-rest-api

时间: 2024-10-12 19:01:40

使用Slim框架实现基本的REST API的相关文章

PHP Slim 框架初体验之无法访问控制器

话不多说,先把报错贴出来: 刚开始用slim框架,在设置完自动加载文件和路由文件之后,我写了一个控制器: <?php use \Psr\Http\Message\ServerRequestInterface as Request; use \Psr\Http\Message\ResponseInterface as Response; use \interop\Container\ContainerInterface; class HomeController { protected $app;

Android已有的原生Camera框架中添加自己的API的实现方案。

在过去的2个月里,基本定制并评估完了项目所需要的基本需求,围绕着全志A31和Android4.2.2来实现.最近由于需要,在修改他的Camera的架构中,需要应用程序给HAL透传一个参数来控制底层图像处理算法的实现,即需要提供一个合理的API供APP的开发使用. 起初想到的,最简单有效的方法就是重新定制SDK,但不断遇到的问题,使得最终切换了部分的思路,但核心没有发生变化. Android系统的架构层次分明,在复杂的架构中往往理解以后会变得十分的简单,现在看来,过去2个多月的时间基本把Camer

php简单测试slim框架的功能

php简单测试slim框架的功能 监听主路径/ $app->get( '/', function () { $template = <<<EOT<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Slim Framework for PHP 5</title> <style> html,body,div,spa

【ASP.NET Web API2框架揭秘】 初识Web API

Web Api 是什么? MSDN:ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务 百度百科:Web API是网络应用程序接口. 个人理解:Web API 是提供给多种客户端对data做CRUD(增删查改)操作的统一接口 ------------------------------------------- Asp.net Web API 支持多种寄宿方式 1,IIS作为宿主(创建一个Asp.net web应用程序作为Web

在Struts2框架中使用Servlet的API

1. 在Action类中也可以获取到Servlet一些常用的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显示到JSP的页面上. * 提供JSP注册的页面,演示下面这三种方式 <h3>注册页面</h3> <form action="${ pageContext.request.contextPath }/xxx.action" method="post"&g

新生的html5框架webkit 各个类的API讲解

WKWebView // webview 配置,具体看下面 @property (nonatomic, readonly, copy) WKWebViewConfiguration *configuration; // 导航代理 @property (nullable, nonatomic, weak) id <WKNavigationDelegate> navigationDelegate; // 用户交互代理 @property (nullable, nonatomic, weak) id

每天一点点之laravel框架 - Laravel5.6 + Passport实现Api接口认证

1.首先通过 Composer 包管理器安装 Passport: composer require laravel/passport 注:如果安装过程中提示需要更高版本的 Laravel:laravel/passport v5.0.0 requires illuminate/http ~5.6,可以通过指定版本来安装 composer require laravel/passport ~4.0. 2.注册服务提供者 将 Passport 的服务提供者注册到配置文件 config/app.php 

使用Django REST框架创建一个简单的Api

Create a Simple API Using Django REST Framework in Python WHAT IS AN API API stands for application programming interface. API basically helps one web application to communicate with another application. Let's assume you are developing an android app

FastAPI框架快速构建高性能的api服务

https://cloud.tencent.com/developer/article/1431448 使用FastAPI可以非常快速的构建出一套高性能的api服务.下面通过实战演示一下: fastapi目前仅支持python 3.6+以上版本. 一.安装fastapi和uvicorn pip install fastapi pip install uvicorn 二.新建一个main.py文件,编写如下代码 from fastapi import FastAPI app = FastAPI()