Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php php写api有什么需要注意的嘛?

php写api有什么需要注意的嘛?

Jun 06, 2016 pm 08:22 PM
api php

第一次写api程序,用的原生php,没有restful要求。如果只实现功能返回json数据的话感觉很容易就能实现大部分功能,那么除了功能实现之外需要注意什么问题呢?新手求指导。。已经贴上代码 一共4个文件

<code><?php class Response {
    /**
     *按json方式输出通信数据
     * @param integer $code 状态码
     * @param string $message 提示信息
     * @param array $data 数据
    */
    public static function show($code,$message = '', $data = array()){
        if(!is_numeric($code)){
            return '';
        }
        
        $result = array(
            'code' => $code,
            'message' => $message,
            'data' => $data
        );
        
        echo json_encode($result);
    }
}</code>
Salin selepas log masuk
Salin selepas log masuk
<code><?php /*
 * 单例模式 数据库连接
 */
require_once ('Response.php');
class Db {
    static  private $_instance;
    static private $_connectSource;
    private $_DbConfig = array(
        'host' => 'localhost',
        'user' => 'root',
        'password' => 'xxx',
        'database' => 'sportsstore'
    );

    private function __construct() {
    }
    
    static public function getInstace(){
        if(!(self::$_instance instanceof self)){
            self::$_instance = new self();
        }
        return self::$_instance;
    }
    
    public function connect(){
        if(!self::$_connectSource)
        {
            self::$_connectSource = mysqli_connect($this->_DbConfig['host'], $this->_DbConfig['user'], 
                    $this->_DbConfig['password'],$this->_DbConfig['database']);
            
            if(!self::$_connectSource){
                throw new Exception("mysql connect error" . mysql_errno());
            }
        }
        return self::$_connectSource;
    }
}
</code>
Salin selepas log masuk
Salin selepas log masuk

这个是登录的代码

<code>/*
*login.phh 登录接口
*/
<?php require_once ('Db.php');
require_once ('Response.php');

try{
    $link = Db::getInstace()->connect();
} catch (Exception $ex) {
    return Response::show(402,"数据库连接失败");
}
$account = mysqli_real_escape_string($link, trim($_POST['account']));
$password = mysqli_real_escape_string($link, trim($_POST['password']));
$query = "select * from users where account = \"$account\"";
$result = mysqli_query($link, $query);
if(mysqli_num_rows($result)==1){
    $row = mysqli_fetch_array($result);
    if($row['password'] == $password){
        return Response::show(200, '登录成功');
    }else{
        return Response::show(202,'密码不正确');
    }
}else{
    return Response::show(201,'账户不存在');
}</code>
Salin selepas log masuk
Salin selepas log masuk
<code>/*
*getPersonalInfo.phh 查询个人信息接口
*/
<?php require_once ('Db.php');
require_once ('Response.php');

try{
    $link = Db::getInstace()->connect();
} catch (Exception $ex) {
    return Response::show(402,'数据库连接失败');
}

$account = isset($_GET['account']) ? mysqli_real_escape_string($link, trim($_GET['account'])) : null;
if($account === null){
    return Response::show(401,'未登录');
}

$query = "select * from users where account=\"$account\"";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_assoc($result);
return Response::show(200,"操作成功",$row);</code>
Salin selepas log masuk
Salin selepas log masuk

回复内容:

第一次写api程序,用的原生php,没有restful要求。如果只实现功能返回json数据的话感觉很容易就能实现大部分功能,那么除了功能实现之外需要注意什么问题呢?新手求指导。。已经贴上代码 一共4个文件

<code><?php class Response {
    /**
     *按json方式输出通信数据
     * @param integer $code 状态码
     * @param string $message 提示信息
     * @param array $data 数据
    */
    public static function show($code,$message = '', $data = array()){
        if(!is_numeric($code)){
            return '';
        }
        
        $result = array(
            'code' => $code,
            'message' => $message,
            'data' => $data
        );
        
        echo json_encode($result);
    }
}</code>
Salin selepas log masuk
Salin selepas log masuk
<code><?php /*
 * 单例模式 数据库连接
 */
require_once ('Response.php');
class Db {
    static  private $_instance;
    static private $_connectSource;
    private $_DbConfig = array(
        'host' => 'localhost',
        'user' => 'root',
        'password' => 'xxx',
        'database' => 'sportsstore'
    );

    private function __construct() {
    }
    
    static public function getInstace(){
        if(!(self::$_instance instanceof self)){
            self::$_instance = new self();
        }
        return self::$_instance;
    }
    
    public function connect(){
        if(!self::$_connectSource)
        {
            self::$_connectSource = mysqli_connect($this->_DbConfig['host'], $this->_DbConfig['user'], 
                    $this->_DbConfig['password'],$this->_DbConfig['database']);
            
            if(!self::$_connectSource){
                throw new Exception("mysql connect error" . mysql_errno());
            }
        }
        return self::$_connectSource;
    }
}
</code>
Salin selepas log masuk
Salin selepas log masuk

这个是登录的代码

<code>/*
*login.phh 登录接口
*/
<?php require_once ('Db.php');
require_once ('Response.php');

try{
    $link = Db::getInstace()->connect();
} catch (Exception $ex) {
    return Response::show(402,"数据库连接失败");
}
$account = mysqli_real_escape_string($link, trim($_POST['account']));
$password = mysqli_real_escape_string($link, trim($_POST['password']));
$query = "select * from users where account = \"$account\"";
$result = mysqli_query($link, $query);
if(mysqli_num_rows($result)==1){
    $row = mysqli_fetch_array($result);
    if($row['password'] == $password){
        return Response::show(200, '登录成功');
    }else{
        return Response::show(202,'密码不正确');
    }
}else{
    return Response::show(201,'账户不存在');
}</code>
Salin selepas log masuk
Salin selepas log masuk
<code>/*
*getPersonalInfo.phh 查询个人信息接口
*/
<?php require_once ('Db.php');
require_once ('Response.php');

try{
    $link = Db::getInstace()->connect();
} catch (Exception $ex) {
    return Response::show(402,'数据库连接失败');
}

$account = isset($_GET['account']) ? mysqli_real_escape_string($link, trim($_GET['account'])) : null;
if($account === null){
    return Response::show(401,'未登录');
}

$query = "select * from users where account=\"$account\"";
$result = mysqli_query($link, $query);
$row = mysqli_fetch_assoc($result);
return Response::show(200,"操作成功",$row);</code>
Salin selepas log masuk
Salin selepas log masuk


Update

  • 数据完整

  • 语义简洁

  • 版本可控

  • 响应灵活

  • 安全可靠(https可以考虑,token机制,ip白名单等)

  • 响应速度

  • 风格统一(不要隔三差五就变,返回的格式统一)

记住一点,不要写json_ecode($array);exit;这样的代码就好。
用自己轻量级的类似apiRespnse($data) 分装,虽然你只返回json.

楼上说的不错,我再加一条。
格式统一

比如返回的数据一定带一个统一名称的“请求状态结果”,比如返回的数据一定统一放一个变量里。
避免出现前台不同的地方要判断不同的名字。

注册的接口 还有抽奖的接口 必须安全性得到保障,防止恶意刷!!!

你先贴上你的代码。我也学习一下。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Ekspedisi 33 - Cara mendapatkan pemangkin Chroma yang sempurna
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1677
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
PHP dan Python: Paradigma yang berbeza dijelaskan PHP dan Python: Paradigma yang berbeza dijelaskan Apr 18, 2025 am 12:26 AM

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP: Pengendalian pangkalan data dan logik sisi pelayan PHP: Pengendalian pangkalan data dan logik sisi pelayan Apr 15, 2025 am 12:15 AM

PHP menggunakan sambungan MySQLI dan PDO untuk berinteraksi dalam operasi pangkalan data dan pemprosesan logik sisi pelayan, dan memproses logik sisi pelayan melalui fungsi seperti pengurusan sesi. 1) Gunakan MySQLI atau PDO untuk menyambung ke pangkalan data dan laksanakan pertanyaan SQL. 2) Mengendalikan permintaan HTTP dan status pengguna melalui pengurusan sesi dan fungsi lain. 3) Gunakan urus niaga untuk memastikan atomik operasi pangkalan data. 4) Mencegah suntikan SQL, gunakan pengendalian pengecualian dan sambungan penutup untuk debugging. 5) Mengoptimumkan prestasi melalui pengindeksan dan cache, tulis kod yang sangat mudah dibaca dan lakukan pengendalian ralat.

Tujuan PHP: Membina Laman Web Dinamik Tujuan PHP: Membina Laman Web Dinamik Apr 15, 2025 am 12:18 AM

PHP digunakan untuk membina laman web dinamik, dan fungsi terasnya termasuk: 1. Menjana kandungan dinamik dan menghasilkan laman web secara real time dengan menyambung dengan pangkalan data; 2. Proses Interaksi Pengguna dan Penyerahan Bentuk, Sahkan Input dan Menanggapi Operasi; 3. Menguruskan sesi dan pengesahan pengguna untuk memberikan pengalaman yang diperibadikan; 4. Mengoptimumkan prestasi dan ikuti amalan terbaik untuk meningkatkan kecekapan dan keselamatan laman web.

Memilih antara php dan python: panduan Memilih antara php dan python: panduan Apr 18, 2025 am 12:24 AM

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

PHP dan Python: menyelam mendalam ke dalam sejarah mereka PHP dan Python: menyelam mendalam ke dalam sejarah mereka Apr 18, 2025 am 12:25 AM

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

Mengapa menggunakan PHP? Kelebihan dan faedah dijelaskan Mengapa menggunakan PHP? Kelebihan dan faedah dijelaskan Apr 16, 2025 am 12:16 AM

Manfaat utama PHP termasuk kemudahan pembelajaran, sokongan pembangunan web yang kukuh, perpustakaan dan kerangka yang kaya, prestasi tinggi dan skalabilitas, keserasian silang platform, dan keberkesanan kos. 1) mudah dipelajari dan digunakan, sesuai untuk pemula; 2) integrasi yang baik dengan pelayan web dan menyokong pelbagai pangkalan data; 3) mempunyai rangka kerja yang kuat seperti Laravel; 4) Prestasi tinggi dapat dicapai melalui pengoptimuman; 5) menyokong pelbagai sistem operasi; 6) Sumber terbuka untuk mengurangkan kos pembangunan.

Impak PHP: Pembangunan Web dan seterusnya Impak PHP: Pembangunan Web dan seterusnya Apr 18, 2025 am 12:10 AM

Phphassignificantelympactedwebdevelopmentandextendsbeyondit.1) itpowersmajorplatformslikeworderpressandexcelsindatabaseIntions.2) php'SadaptabilityAldoStoScaleforlargeapplicationFrameworksLikelara.3)

PHP vs Python: Gunakan Kes dan Aplikasi PHP vs Python: Gunakan Kes dan Aplikasi Apr 17, 2025 am 12:23 AM

PHP sesuai untuk pembangunan web dan sistem pengurusan kandungan, dan Python sesuai untuk sains data, pembelajaran mesin dan skrip automasi. 1.PHP berfungsi dengan baik dalam membina laman web dan aplikasi yang cepat dan berskala dan biasanya digunakan dalam CMS seperti WordPress. 2. Python telah melakukan yang luar biasa dalam bidang sains data dan pembelajaran mesin, dengan perpustakaan yang kaya seperti numpy dan tensorflow.

See all articles