原生sql实现restful接口调用

index.php

<?php

include './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';
        }
        //output
        header(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);
        }
    }
    //json
    private static function encodeJson($responseData){
        header("Content-Type:application/json");
        return json_encode($responseData);
    }
    //xml
    private 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于调用 `xxljob` 的 RESTful 接口,您可以按照以下步骤进行操作: 1. 首先,需要确保 `xxljob` 已经正确安装和配置,并且服务已经启动运行。 2. 查询 `xxljob` 的接口文档,了解可用的接口和参数信息。一般而言,`xxljob` 提供了一系列用于任务管理和执行的接口。 3. 使用您喜欢的编程语言或框架,发起 HTTP 请求来调用 `xxljob` 的接口。这可以通过使用标准库提供的方法、第三方库或工具来实现。 例如,使用 Python 中的 `requests` 库可以发送 HTTP 请求,示例代码如下: ```python import requests url = "http://localhost:8080/xxl-job-admin/jobinfo/add" headers = { "Content-Type": "application/json" } data = { "jobGroup": 1, "executorRouteStrategy": "FIRST", "executorHandler": "demoJobHandler", "executorBlockStrategy": "SERIAL_EXECUTION", "jobDesc": "示例任务", "author": "C知道", "glueType": "BEAN", "glueRemark": "", "executorParam": "", "misfireStrategy": "DO_NOTHING", "cronGen_display": "0/5 * * * * ?", "childJobId": "", "executorTimeout": 0, "executorFailRetryCount": 0 } response = requests.post(url, json=data, headers=headers) if response.status_code == 200: print("调用成功") else: print("调用失败") ``` 注意,上述示例中的 URL、请求头、请求体数据和接口路径需要根据实际情况进行修改。 4. 根据响应结果进行相应的处理。正常情况下,`xxljob` 的接口会返回相应的执行结果或状态信息。 请确保在调用 `xxljob` 接口时,提供正确的参数和数据,并根据接口文档中的要求进行调用。希望对您有所帮助!如果有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值