您当前的位置: 首页 >  彭世瑜 php

PHP:APP接口开发

彭世瑜 发布时间:2019-07-28 20:56:58 ,浏览量:1

环境简介

LNMP 1、Linux 2、Nginx 3、MySQL 4、PHP

APP接口 客户端与服务端数据的交换

HTTP通讯三要素 1、URL 地址 2、Method 方式 3、Params 内容

客户端传递参数 1、URl参数 GET 2、Request Body POST (1)form-url (2)form-data (3)json

环境搭建

环境要求 PHP >= 7.0.0

全局安装composer

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

配置路径

cat ~/.bash_profile

# composer
export PATH=$PATH:$HOME/.composer/vendor/bin

安装 Laravel

composer global require "laravel/installer"

创建新应用

laravel new blog

本地开发服务器

php artisan serve

http://localhost:8000

jquery.ajax

jQuery.ajax([settings])

type 类型:String 默认值: “GET”。请求方式 POST/GET/PUT/DELETE

url 类型:String 默认值: 当前页地址。发送请求的地址

contentType 类型:String 默认值: “application/x-www-form-urlencoded”。发送信息至服务器时内容编码类型。

data 类型:String 发送到服务器的数据

dataType 类型:String 预期服务器返回的数据类型。xml/html/script/json/jsonp/text

success 类型:Function 请求成功后的回调函数。

jsonp 类型:String 在一个 jsonp 请求中重写回调函数的名字

jsonpCallback 类型:String 为 jsonp 请求指定一个回调函数名

ajax发送各种请求




    
    Document
    



    hello

    
        var data = {
            "name": "Tom",
            "age": 23
        };
        
        // 发送GET请求
        $.ajax({
            type: "GET",
            url: "/api/get",
            dataType: "json",
            data: data,
            success: function(data) {
                console.log(data);
            }
        });
        
        // 发送POST请求 
        // Content-Type: application/x-www-form-urlencoded; charset=UTF-8
        $.ajax({
            type: "POST",
            url: "/api/post-form",
            dataType: "json",
            data: data,
            success: function(data) {
                console.log(data);
            }
        });

        // 发送POST请求  不编码
        // Content-Type: multipart/form-data; charset=UTF-8
        var formData = new FormData();
        formData.append("name", "Tom");
        formData.append("age", "23");

        $.ajax({
            type: "POST",
            url: "/api/post-form-data",
            dataType: "json",
            contentType: false,
            processData: false,  
            data: formData,
            success: function(data) {
                console.log(data);
            }
        });

        // 发送json数据
        // Content-Type: application/json; charset=UTF-8
        $.ajax({
            type: "POST",
            url: "/api/post-json",
            dataType: "json",
            contentType: 'application/json; charset=UTF-8',
            data: JSON.stringify(data),
            success: function(data) {
                console.log(data);
            }
        });

        // 发送jsonp数据
        $.ajax({
            type: "GET",
            url: "/api/get-jsonp",
            dataType: "jsonp",
            data: data,
            success: function(data) {
                console.log(data);
            }
        });

    



PHP后端接收参数

routes/web.php

Route::get('/', function () {
    // return view('welcome');
    return view('index');
});

routes/api.php


Route::get('/get', function () {
    $name = $_GET["name"];
    $age = $_GET["age"];
    echo json_encode([$name => $age]); 
});

Route::post('/post-form', function () {
    $name = $_POST["name"];
    $age = $_POST["age"];
    echo json_encode([$name => $age]); 
});

Route::post('/post-form-data', function () {
    $name = $_POST["name"];
    $age = $_POST["age"];
    echo json_encode([$name => $age]); 
});

Route::post('/post-json', function () {
    $ret = file_get_contents("php://input");
    $data = json_decode($ret, true);

    $name = $data["name"];
    $age = $data["age"];
    echo json_encode([$name => $age]); 

});

Route::get('/get-jsonp', function () {
    $callback = $_GET["callback"];

    $name = $_GET["name"];
    $age = $_GET["age"];
    
    echo $callback . "(" . json_encode([$name => $age]) . ")";
});

Laravel 接收GET或POST参数

Route::get('/getOrPost', function (Request $request) {
    $name = $request->input("name");
    $age = $request->input("age");

    echo json_encode([$name => $age]); 
});
XML和JSON

APP接口输出格式三要素 code 错误码 msg 错误码描述 data 接口数据

封装app接口数据格式

app/Http/Response/ResponseJson.php

            
关注
打赏
1688896170
查看更多评论
0.0798s