백엔드 개발 PHP 튜토리얼 편안한 API 오류 프롬프트 PHP의 반환 값 구현 아이디어 편안한 API 예제 편안한 인터페이스 저지 편안한

편안한 API 오류 프롬프트 PHP의 반환 값 구현 아이디어 편안한 API 예제 편안한 인터페이스 저지 편안한

Jul 29, 2016 am 08:53 AM
restful

RESTful 아키텍처는 널리 사용되는 인터넷 소프트웨어 아키텍처로, 구조가 명확하고 표준을 준수하며 이해하기 쉽고 확장이 쉽습니다.

REST는 Representational State Transfer의 약자로 "Presentation Layer State Transformation"으로 번역됩니다. 프리젠테이션 계층은 실제로 리소스이므로 "리소스 상태 변환"으로 이해될 수 있습니다.

웹 애플리케이션의 모든 엔터티는 URI(Uniform Resource Locator)가 가리키는 리소스로 간주될 수 있습니다.

서문

Weibo든 Taobao든 고유한 오류 반환 값 형식 사양과 오류 코드 설명이 있어 휴대폰에서 사용하기 편리할 뿐만 아니라 , 그러나 또한 사람들에게 명확하고 우아한 느낌을 줍니다. 문제가 생기면 먼저 모회사에 가야 합니다. 대기업의 규범은 우리가 참고해야 할 모회사입니다. 이를 위해 타오바오의 오류 반환 값 형식을 모방하고, 웨이보 오류 코드가 정한 표준에 따라 나만의 오류 코드를 맞춤화한 후 Restful API에서 테스트했습니다. 아래에서는 구현 아이디어와 테스트 결과를 공유하겠습니다.

구현 아이디어

저는 이러한 오류 반환 값을 구현하기 위해 추상 팩토리 패턴을 사용합니다. 내가 이 패턴을 선택한 이유는 이 패턴이 일련의 관련되거나 상호 의존적인 개체를 생성하기 위한 인터페이스를 제공하고 이것이 내 요구 사항에 매우 가깝기 때문입니다.

코드 분석

1. 이 경로 commonhint에 따라 오류 프롬프트 프로그램 파일을 저장하기 위해 새 오류 폴더를 만들었습니다. 이 폴더에는 주로 다음 파일이 포함되어 있습니다:

2. Hint.php 항목 파일. 추상 클래스를 정의하고 그 안에 하나의 메서드만 작성합니다.

interface Hint {
function Error($_errors,$code);
}
로그인 후 복사

3. Template.php는 힌트 인터페이스를 구현합니다. 오류 반환 값의 형식은 여기에서 정의됩니다.

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));
}
}
}
로그인 후 복사

4. createMsg.php 또 다른 createMsg 추상 클래스를 만듭니다. 인터페이스에 추상 객체 생성.

interface createMsg { 
function Msg(); 
}
로그인 후 복사

5. FactoryMsg 클래스를 사용하여 createMsg 인터페이스를 구현합니다. 인스턴스화된 템플릿을 반환합니다.

class FactoryMsg implements createMsg{
function Msg() {
return new Template;
}
}
로그인 후 복사

6. ErrorMsg.php는 매개변수를 템플릿의 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');
}
}
로그인 후 복사

7. 호출 방법.

use common\hint\error\ErrorMsg;
ErrorMsg::Info(Yii::t('yii','failure'));
로그인 후 복사

8. 테스트 결과.

{
"error": {
"name": "Not Found",
"message": "操作失败",
"error_code": "20003"
}
}
로그인 후 복사

완료되었습니다. 전체 구현 프로세스는 언어 팩 형태로 되어 있어 나중에 다중 언어 전환이 용이해집니다.

자주 묻는 질문

1. 이러한 종류의 문자열 퍼지 검색을 사용하는 것은 매우 일반적이며 특정 오류 유형에 해당하는 특정 코드를 반환하는 요구 사항을 충족할 수 없습니다. 더 나은 제안이 있으면 언제든지 제안해 주시기 바랍니다.

$result = strstr($_errors,Yii::t('yii','Not exist'));
로그인 후 복사

2. 구현 과정에서 향후 다국어 전환 문제를 고려하지 않았으며 프롬프트가 기존 방식으로 직접 전송되었습니다. 예: ErrorMsg::Info("Operation failed") 이러한 방식으로 다중 언어 전환을 수행할 수 없습니다. 매개변수를 전달하려면 언어 팩을 사용하는 것이 좋습니다.

위 내용은 Restful 컨텐츠를 포함하여 PHP에서의 Restful api 오류 프롬프트 반환 값 구현 아이디어를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Flask-RESTful 및 Swagger: Python 웹 애플리케이션에서 RESTful API를 구축하기 위한 모범 사례(2부) Flask-RESTful 및 Swagger: Python 웹 애플리케이션에서 RESTful API를 구축하기 위한 모범 사례(2부) Jun 17, 2023 am 10:39 AM

Flask-RESTful 및 Swagger: Python 웹 애플리케이션에서 RESTful API를 구축하기 위한 모범 사례(2부) 이전 기사에서는 Flask-RESTful 및 Swagger를 사용하여 RESTful API를 구축하기 위한 모범 사례를 살펴보았습니다. Flask-RESTful 프레임워크의 기본 사항을 소개하고 Swagger를 사용하여 RESTful API에 대한 문서를 작성하는 방법을 보여주었습니다. 책

Laravel을 사용한 RESTful API 개발: 최신 웹 서비스 구축 Laravel을 사용한 RESTful API 개발: 최신 웹 서비스 구축 Aug 13, 2023 pm 01:00 PM

Laravel을 사용한 RESTful API 개발: 현대적인 웹 서비스 구축 인터넷의 급속한 발전으로 인해 웹 서비스에 대한 수요가 날로 증가하고 있습니다. 현대적인 웹 서비스 아키텍처인 RESTfulAPI는 가볍고 유연하며 확장이 용이하여 웹 개발에 널리 사용되었습니다. 이 글에서는 Laravel 프레임워크를 사용하여 최신 RESTful API를 구축하는 방법을 소개합니다. Laravel은 PHP 언어입니다.

Django를 사용하여 RESTful API 구축 Django를 사용하여 RESTful API 구축 Jun 17, 2023 pm 09:29 PM

Django는 RESTful API를 쉽게 구축할 수 있게 해주는 웹 프레임워크입니다. RESTfulAPI는 HTTP 프로토콜을 통해 액세스할 수 있는 웹 기반 아키텍처입니다. 이 글에서는 DjangoREST 프레임워크를 사용하여 개발 프로세스를 단순화하는 방법을 포함하여 Django를 사용하여 RESTful API를 구축하는 방법을 소개합니다. Django 설치 먼저 Django를 로컬에 설치해야 합니다. 특히 pip를 사용하여 Django를 설치할 수 있습니다.

Python 플라스크 RESTful을 사용하는 방법 Python 플라스크 RESTful을 사용하는 방법 Apr 29, 2023 pm 07:49 PM

1. RESTful 개요 REST(RepresentationalStateTransfer) 스타일은 웹 애플리케이션이 우수한 가독성, 확장성 및 유지 관리성을 갖도록 몇 가지 디자인 원칙을 따르는 리소스 중심의 웹 애플리케이션 디자인 스타일입니다. RESTful 스타일의 각 측면을 자세히 설명하겠습니다. 리소스 식별자: RESTful 스타일에서 각 리소스에는 일반적으로 URL(UniformResourceLocator)과 같은 고유 식별자가 있습니다. URL은 클라이언트가 HTTP 프로토콜을 사용하여 리소스에 액세스할 수 있도록 리소스의 위치를 ​​식별하는 데 사용됩니다. 예를 들어, 간단한 URL은 다음과 같습니다: http

PHP를 사용하여 RESTful API를 구축하는 단계 PHP를 사용하여 RESTful API를 구축하는 단계 Jun 17, 2023 pm 01:01 PM

인터넷의 발전과 대중화로 인해 웹 애플리케이션과 모바일 애플리케이션이 점점 더 보편화되고 있습니다. 이러한 애플리케이션은 백엔드 서버와 통신하고 데이터를 가져오거나 제출해야 합니다. 과거에는 SOAP(Simple Object Access Protocol)나 XML-RPC(XML Remote Procedure Call)를 사용하여 통신하는 일반적인 방법이 있었습니다. 그러나 시간이 지남에 따라 이러한 프로토콜은 너무 번거롭고 복잡한 것으로 간주되었습니다. 최신 애플리케이션에는 통신을 위해 더 가볍고 간단한 API가 필요합니다. RESTfulAPI(프레젠테이션 레이어 상태 변환 AP

Beego를 사용한 RESTful 서비스 개발 모범 사례 Beego를 사용한 RESTful 서비스 개발 모범 사례 Jun 23, 2023 am 11:04 AM

현재 정보 기술의 지속적인 혁신 환경에서 RESTful 아키텍처는 일반적으로 사용되는 다양한 WebAPI 애플리케이션에서 널리 사용되며 새로운 서비스 개발 트렌드가 되었습니다. Golang의 고성능 및 쉽게 확장 가능한 웹 프레임워크인 Beego 프레임워크는 효율성, 사용 용이성 및 유연성이라는 장점으로 인해 RESTful 서비스 개발에 널리 사용됩니다. 다음은 Beego에서 RESTful 서비스를 개발하기 위한 모범 사례의 관점에서 개발자를 위한 몇 가지 참고 자료를 제공합니다. 1. REST의 라우팅 설계

RESTful API 설계 및 구현 방법 RESTful API 설계 및 구현 방법 Jun 22, 2023 pm 04:07 PM

RESTfulAPI는 현재 웹 아키텍처에서 일반적으로 사용되는 API 디자인 스타일입니다. 그 디자인 개념은 웹 리소스의 표현과 상호 작용을 완성하기 위한 HTTP 프로토콜의 표준 방법을 기반으로 합니다. 구현 과정에서 RESTful API는 캐시 가능성, 서버-클라이언트 분리, 상태 비저장 등을 포함한 일련의 규칙과 제약 조건을 따릅니다. 이러한 규칙은 API의 유지 관리 가능성, 확장성, 보안 및 사용 용이성을 보장합니다. 다음으로 이 글에서는 RESTfulAPI의 설계와 구현에 대해 자세히 소개하겠습니다.

Java를 사용하여 RESTful 기반 API를 개발하는 방법 Java를 사용하여 RESTful 기반 API를 개발하는 방법 Sep 21, 2023 pm 03:53 PM

Java를 사용하여 RESTful 기반 API를 개발하는 방법 RESTful은 HTTP 프로토콜을 기반으로 하는 아키텍처 스타일로 GET, POST, PUT, DELETE 및 기타 HTTP 프로토콜 방법을 사용하여 리소스를 운영합니다. Java 개발에서는 SpringMVC, Jersey 등과 같은 일부 프레임워크를 사용하여 RESTful API의 개발 프로세스를 단순화할 수 있습니다. 이 기사에서는 Java를 사용하여 RESTful 기반을 개발하는 방법을 자세히 소개합니다.

See all articles