Rumah pembangunan bahagian belakang tutorial php PHP中Restful api 错误提示返回值实现思路 restful api 例子 restful接口 jersey restful

PHP中Restful api 错误提示返回值实现思路 restful api 例子 restful接口 jersey restful

Jul 29, 2016 am 08:53 AM
restful

RESTful架构是一种流行的互联网软件架构,它结构清晰,符合标准,易于理解,扩展方便。

REST是Representational State Transfer的缩写,翻译为“表现层状态转化”。表现层其实就是资源,因此可以理解为“资源状态转化”。

网络应用上的任何实体都可以看作是一种资源,通过一个URI(统一资源定位符)指向它。

序言

不管是微博还是淘宝,他们都有自己的错误返回值格式规范,以及错误代码说明,这样不但手机端用起来方便,给人的感觉也清晰明了,高大上。遇到问题先找母本,大公司的规范就是我们参照的母本。为此,我仿照了淘宝的错误返回值格式,根据微博错误代码制定的标准自定了自己的错误代码,然后在Restful api 上进行测试。下面我将实现思路以及测试结果分享给大家。

实现思路

我利用抽象工厂模式去实现这样的一个错误返回值。选择这种模式是因为考虑到了这种模式可以提供一个创建一系列相关或相互依赖对象的接口,与我的需求很接近。

代码分析

1、按这个路径common\hint,我新建了个error文件夹存放我的错误提示程序文件。这文件夹中主要有这几个文件:

2、Hint.php入口文件。定义一个抽象类,里边只写一个方法。

interface Hint {
function Error($_errors,$code);
}
Salin selepas log masuk

3、Template.php 实现Hint这个接口。错误返回值的格式就在这里定义。

class Template implements Hint{
function Error($_errors,$code) { 
if (empty($_errors)) {
print_r(json_encode([]));
} else { 
$errors['error']['name'] = 'Not Found';
$errors['error']['message'] = $_errors;
$errors['error']['error_code'] = $code; 
print_r(json_encode($errors));
}
}
}
Salin selepas log masuk

4、createMsg.php 再创建一个createMsg抽象类。将对象的创建抽象成一个接口。

interface createMsg { 
function Msg(); 
}
Salin selepas log masuk

5、用FactoryMsg 类去实现createMsg接口。返回实例化的Template。

class FactoryMsg implements createMsg{
function Msg() {
return new Template;
}
}
Salin selepas log masuk

6、ErrorMsg.php 给Template里边的Error方法传参。

class ErrorMsg {
// 抽象工厂里的静态方法
public static function Info($_errors) { 
$Factory = new FactoryMsg;
$result = strstr($_errors,Yii::t('yii','Not exist')); //数据不存在 20001
$result1 = strstr($_errors,Yii::t('yii','Null')); //参数不能为空 20002
$result2 = strstr($_errors,Yii::t('yii','Fail')); //新增、更新、删除失败 20003
$result3 = strstr($_errors,Yii::t('yii','Not right')); //XX不正确 20004
$result4 = strstr($_errors,Yii::t('yii','Robc')); //XX无权限 20005
//数据不存在 20001
if(!empty($result)){ 
$M = $Factory->Msg();
$M->Error($_errors,'20001');die;
}
//参数不能为空 20002
if(!empty($result1)){ 
$M = $Factory->Msg();
$M->Error($_errors,'20002');die;
}
//新增、更新、删除失败 20003
if(!empty($result2)){ 
$M = $Factory->Msg();
$M->Error($_errors,'20003');die;
}
//XX不正确 20004
if(!empty($result3)){ 
$M = $Factory->Msg();
$M->Error($_errors,'20004');die;
}
//XX无权限 20005
if(!empty($result4)){ 
$M = $Factory->Msg();
$M->Error($_errors,'20005');die;
}
//默认类型 21000
$M = $Factory->Msg();
$M->Error($_errors,'21000');
}
}
Salin selepas log masuk

7、调用方式。

use common\hint\error\ErrorMsg;
ErrorMsg::Info(Yii::t('yii','failure'));
Salin selepas log masuk

8、测试结果。

{
"error": {
"name": "Not Found",
"message": "操作失败",
"error_code": "20003"
}
}
Salin selepas log masuk

完成。整个实现过程我采用语言包的形式,这样有利于后期多语言的切换。

常见问题

1、采用这种字符串模糊搜索很泛,无法达到具体错误类型返回对应具体代码的要求。如有更好的建议,欢迎大家提议。

$result = strstr($_errors,Yii::t('yii','Not exist'));
Salin selepas log masuk

2、实现过程中没有考虑到今后多语言切换的问题,然后直接用传统的方式传提示语。比如:ErrorMsg::Info("操作失败");这样是无法实现多语言切换的。建议大家用语言包的方式传参。

以上就介绍了PHP中Restful api 错误提示返回值实现思路,包括了restful方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 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)

Flask-RESTful dan Swagger: Amalan terbaik untuk membina API RESTful dalam aplikasi web Python (Bahagian 2) Flask-RESTful dan Swagger: Amalan terbaik untuk membina API RESTful dalam aplikasi web Python (Bahagian 2) Jun 17, 2023 am 10:39 AM

Flask-RESTful dan Swagger: Amalan Terbaik untuk Membina API RESTful dalam Aplikasi Web Python (Bahagian 2) Dalam artikel sebelumnya, kami meneroka amalan terbaik untuk membina API RESTful menggunakan Flask-RESTful dan Swagger. Kami memperkenalkan asas rangka kerja Flask-RESTful dan menunjukkan cara menggunakan Swagger untuk membina dokumentasi untuk API RESTful. Buku

Pembangunan API RESTful dengan Laravel: Membina perkhidmatan web moden Pembangunan API RESTful dengan Laravel: Membina perkhidmatan web moden Aug 13, 2023 pm 01:00 PM

Pembangunan API RESTful dengan Laravel: Membina Perkhidmatan Web Moden Dengan perkembangan pesat Internet, permintaan untuk perkhidmatan Web semakin meningkat dari hari ke hari. Sebagai seni bina perkhidmatan Web moden, RESTfulAPI adalah ringan, fleksibel dan mudah dikembangkan, jadi ia telah digunakan secara meluas dalam pembangunan Web. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Laravel untuk membina API RESTful moden. Laravel ialah bahasa PHP

Membina API RESTful menggunakan Django Membina API RESTful menggunakan Django Jun 17, 2023 pm 09:29 PM

Django ialah rangka kerja web yang memudahkan untuk membina API RESTful. RESTfulAPI ialah seni bina berasaskan web yang boleh diakses melalui protokol HTTP. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Django untuk membina API RESTful, termasuk cara menggunakan rangka kerja DjangoREST untuk memudahkan proses pembangunan. Pasang Django Mula-mula, kita perlu memasang Django secara tempatan. Anda boleh menggunakan pip untuk memasang Django, khususnya

Cara menggunakan Python Flask RESTful Cara menggunakan Python Flask RESTful Apr 29, 2023 pm 07:49 PM

1. Gambaran keseluruhan gaya RESTful REST (RepresentationalStateTransfer) ialah gaya reka bentuk aplikasi Web berorientasikan sumber yang mengikut beberapa prinsip reka bentuk untuk menjadikan aplikasi Web mempunyai kebolehbacaan, kebolehskalaan dan kebolehselenggaraan yang baik. Mari kita terangkan setiap aspek gaya RESTful secara terperinci: Pengecam sumber: Dalam gaya RESTful, setiap sumber mempunyai pengecam unik, biasanya URL (UniformResourceLocator). URL digunakan untuk mengenal pasti lokasi sumber supaya pelanggan boleh mengaksesnya menggunakan protokol HTTP. Sebagai contoh, URL ringkas boleh menjadi: http

Langkah untuk membina API RESTful menggunakan PHP Langkah untuk membina API RESTful menggunakan PHP Jun 17, 2023 pm 01:01 PM

Dengan perkembangan dan populariti Internet, aplikasi web dan aplikasi mudah alih menjadi semakin biasa. Aplikasi ini perlu berkomunikasi dengan pelayan bahagian belakang dan mendapatkan atau menyerahkan data. Pada masa lalu, cara konvensional untuk berkomunikasi ialah menggunakan SOAP (Simple Object Access Protocol) atau XML-RPC (Panggilan Prosedur Jauh XML). Walau bagaimanapun, dari masa ke masa, protokol ini dianggap terlalu rumit dan rumit. Aplikasi moden memerlukan API yang lebih ringan dan mudah untuk berkomunikasi. RESTfulAPI (AP penukaran keadaan lapisan pembentangan

Amalan terbaik untuk membangunkan perkhidmatan RESTful dengan Beego Amalan terbaik untuk membangunkan perkhidmatan RESTful dengan Beego Jun 23, 2023 am 11:04 AM

Dalam persekitaran semasa inovasi berterusan dalam teknologi maklumat, seni bina RESTful popular dalam pelbagai aplikasi WebAPI yang biasa digunakan dan telah menjadi trend pembangunan perkhidmatan yang baru muncul. Sebagai rangka kerja Web berprestasi tinggi, mudah untuk dilanjutkan di Golang, rangka kerja Beego digunakan secara meluas dalam pembangunan perkhidmatan RESTful kerana kelebihan kecekapan tinggi, kemudahan penggunaan dan fleksibiliti. Berikut akan memberikan beberapa rujukan untuk pembangun dari perspektif amalan terbaik untuk membangunkan perkhidmatan RESTful di Beego. 1. Reka bentuk laluan dalam REST

Kaedah reka bentuk dan pelaksanaan API RESTful Kaedah reka bentuk dan pelaksanaan API RESTful Jun 22, 2023 pm 04:07 PM

RESTfulAPI ialah gaya reka bentuk API yang biasa digunakan dalam seni bina Web semasa Konsep reka bentuknya adalah berdasarkan kaedah standard protokol HTTP untuk melengkapkan perwakilan dan interaksi sumber Web. Semasa proses pelaksanaan, RESTful API mengikuti satu siri peraturan dan kekangan, termasuk kebolehcache, pemisahan pelayan-klien, ketiadaan negara, dsb. Peraturan ini memastikan kebolehselenggaraan, kebolehskalaan, keselamatan dan kemudahan penggunaan API. Seterusnya, artikel ini akan memperkenalkan secara terperinci reka bentuk dan pelaksanaan RESTfulAPI

Bagaimana untuk membangunkan API berasaskan RESTful menggunakan Java Bagaimana untuk membangunkan API berasaskan RESTful menggunakan Java Sep 21, 2023 pm 03:53 PM

Cara menggunakan Java untuk membangunkan API RESTful berasaskan RESTful ialah gaya seni bina berdasarkan protokol HTTP Ia menggunakan GET, POST, PUT, DELETE dan kaedah lain protokol HTTP untuk mengendalikan sumber. Dalam pembangunan Java, beberapa rangka kerja boleh digunakan untuk memudahkan proses pembangunan API RESTful, seperti SpringMVC, Jersey, dll. Artikel ini akan memperkenalkan anda secara terperinci cara menggunakan Java untuk membangunkan berasaskan RESTful

See all articles