index.php

<?phpinclude './Request.php';
include './Response.php';
//获取数据
$data=Request::getRequest();
$result=Response::sendResponse($data);
echo  $result;
?>
Request.php <?php
class Request{private static $method_type=array('get','post','put','delete','patch');private static $FruitList=array(1=>array('name'=>'apple','num'=>10),2=>array('name'=>'grape','num'=>20),3=>array('name'=>'orange','num'=>40),4=>array('name'=>'banana','num'=>30),5=>array('name'=>'peach','num'=>50),6=>array('name'=>'mango','num'=>60));public static function getRequest(){$method=strtolower($_SERVER['REQUEST_METHOD']);if(in_array($method,self::$method_type)){$methodName=$method.'Data';return self::$methodName($_REQUEST);}return false;}//get 查询private static function getData($params){$fruitId=(int)$params['fruit'];if($fruitId>0){return self::$FruitList[$fruitId];}else{return self::$FruitList;}}//post 添加private static function postData($params){if(!empty($params['name'])){$data['name']=$params['name'];$data['num']=(int)$params['num'];self::$FruitList[]=$data;return self::$FruitList;}else{return false;}}
//put 更新水果信息(全部信息)private static function putData($params){$fruitId=(int)$params['fruit'];if($fruitId==0){return false;}$data=array();if(!empty($params['name'] && isset($params['num']))){$data['name']=$params['name'];$data['num']=(int)$params['num'];self::$FruitList['fruitId']=$data;return self::$FruitList;}else{return false;}}//patch 更新水果部分信息private static function patchData($params){$fruitId=(int)$params['fruit'];if($fruitId==0){return false;}if(!empty($params['name'])){self::$FruitList[$fruitId]['name']=$params['name'];}if(!isset($params['num'])){self::$FruitList[$fruitId]['num']=(int)$params['num'];}return self::$FruitList;}//delete 删除private static function deleteData($params){$fruitId = (int)$params['fruit'];if($fruitId==0){return false;}unset(self::$FruitList[$fruitId]);return self::$FruitList;}
}
?>Response.php
<?php
class Response{const HTTP_VERSION="HTTP/1.1";public  static function sendResponse($data){if($data){$code=200;$message='ok';}else{$code=404;$data=array('error'=>'Not Found');$message='Not Found';}//outputheader(self::HTTP_VERSION."".$code."".$message);$content_type=isset($_SERVER['CONTENT_TYPE'])?$_SERVER['CONTENT_TYPE']:$_SERVER['HTTP_ACCEPT'];if(strpos($content_type,'application/json')!==false){return self::encodeJSON($data);}else if(strpos($content_type,'application/xml')!==false){return self::encodeXml($data);}else{return self::encodeHtml($data);}}//jsonprivate static function encodeJson($responseData){header("Content-Type:application/json");return json_encode($responseData);}//xmlprivate static function encodeXml($params){header("Content-Type:application/xml");$xml=new SimpleXMLElement('<?xml version="1.0"?><fruit></fruit>');foreach ($params as $key =>$value) {if(is_array($value)){foreach($value as $k =>$v){$xml->addChild($k,$v);}}else{$xml->addChild($key,$value);}}return $xml->asXML();}

    //html
   private static function encodeHtml($responseData){header("Content-Type:text/html");$html="<table border='1'>";foreach ($responseData as $key =>$value){$html.="<tr>";if(is_array($value)){foreach($value as $k =>$v){$html.="<td>".$k."</td><td>".$v."</td>";}}else{$html.="<td>".$key."</td><td>".$value."</td>";}$html="<tr>";}$html="</table>";return $html;}
}?>

转载于:https://www.cnblogs.com/chaihtml/p/10436149.html

原生sql实现restful接口调用相关推荐

  1. EBay 接口开发(restful接口调用)

    最近公司需要从eBay拉取数据,踩了很多坑,记录下过程. 首先,调用eBay接口需要注册eBay的开发者账号.注册地址:https://developer.ebay.com/signin.注册之后大概 ...

  2. java创建restful接口,三种方法实现java调用Restful接口

    转自:https://www.cnblogs.com/taozhiye/p/6704659.html 引言:当前,web开发中第三方接口的选择往往是在restful接口和web service 接口 ...

  3. ajax对接接口属性,ajax调用restful接口

    ajax调用restful接口 内容精选 换一换 ROMA API提供了API服务能力,通过API服务把后端服务封装成标准RESTful格式API,并开放给其他用户使用.目前支持三种创建服务方式:创建 ...

  4. ios调用restful接口_Postman调用https异常解决

    Postman为开发者比较常用的api测试工具,功能强大,支持各种restful接口调试,支持文件上传和文件下载. 这里主要根据项目调用https接口出现以下异常做个简要的操作讲解: 调用接口后pos ...

  5. python前端调用后端模型_前端调用后端的方法(基于restful接口的mvc架构)

    1.前端调用后台: 建议用你熟悉的一门服务端程序,例如ASP,PHP,JSP,C#这些都可以,然后把需要的数据从数据库中获得,回传给客户端浏览器(其实一般就是写到HTML中,或者生成XML文件)然后在 ...

  6. 三种方法实现调用Restful接口

    1.基本介绍 Restful接口的调用,前端一般使用ajax调用,后端可以使用的方法比较多, 本次介绍三种: 1.HttpURLConnection实现 2.HttpClient实现 3.Spring ...

  7. php调用restful接口_如何使用PHP编写RESTful接口

    这是一个轻量级框架,专为快速开发RESTful接口而设计.如果你和我一样,厌倦了使用传统的MVC框架编写微服务或者前后端分离的API接口,受不了为了一个简单接口而做的很多多余的coding(和CTRL ...

  8. php调用restful接口_PHP restful 接口

    首先我们来认识下RESTful Restful是一种设计风格而不是标准,比如一个接口原本是这样的: http://www.test.com/user/view/id/1 表示获取id为1的用户信息,如 ...

  9. java调用restful接口_Java调用RESTful接口的几种方式

    前端一般通过Ajax来调用,后端调用的方式还是挺多的,比如HttpURLConnection,HttpClient,Spring的RestTemplate 服务端代码如下: 服务端接口请求的URL:h ...

最新文章

  1. Lua基本语法-书写规范以及自带常用函数
  2. 详解Oracle安装与配置.
  3. 大数据会消灭律师这一职业吗?
  4. CodeForces - 833B The Bakery
  5. OpenGL 持久映射分形的实例
  6. mybatis控制台打印sql
  7. Cow Contest POJ - 3660(floyed求传递闭包)
  8. 怎么查这个文件在linux下的哪个目录
  9. 讨论ALL_ROWS模式和FIRST_ROWS模式
  10. 收藏 | 10个重要问题概览Transformer全部内容
  11. [剑指offer] 66. 机器人的运动范围
  12. 单维度量表验证性因子分析_验证性因子分析.ppt
  13. 某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工
  14. 设置 CSDN 皮肤的方法,修改成自己喜欢的皮肤
  15. 这篇文章记录平时学习、项目中遇到的问题(未解决的居多)
  16. lsm mysql_一文了解数据库索引:哈希、B-Tree 与 LSM
  17. vsdx是什么格式(图文细解)
  18. 最大似然位同步算法总结
  19. 当JAVA集合移除自身集合元素时发生的诸多问题
  20. 三星android 8.0的变化,三星发布最新android 8.0升级计划 最快11月部分升级

热门文章

  1. 安装并配置ROS环境
  2. hp-ux锁定用户密码_UX设计101:用户研究-入门需要了解的一切
  3. 面试官:能不能手写一个 Promise?
  4. H5 页面列表缓存方案
  5. 获取当前Tomcat实例的端口
  6. JAVA学习日志(7-1-继承)
  7. Apache、tomcat、Nginx常用配置合集
  8. spring mvc 入门配置
  9. struts2批量删除
  10. http://blog.csdn.net/myan/article/details/1906