-
JSON 형식의 구조화 된 오류 처리는 API 가용성을 향상시켜 디버깅 및 통합을 용이하게하는 명확한 오류 메시지 및 코드를 제공합니다.
- 기본 인증 및 JSON 처리에 대한 토큰과 같은 미들웨어를 통한 인증은 API 상호 작용을 효과적으로 보호하고 관리하는 데 중요합니다.
- REST : 개발자 친화적 인 ui 우선, API는 개발자의 사용자 인터페이스이므로 친절하고 단순하며 사용하기 쉽고 물론 즐거운 디지털 정크가 될 것입니다. 단순하지만 잘 작성된 readme 파일이더라도 문서는 좋은 시작입니다. 필요한 정보는 서비스 범위와 방법 및 액세스 포인트 목록에 대한 요약입니다. 좋은 요약은 다음과 같습니다. & gt; 두 가지 객체 유형, 연락처 및 메모가 있습니다. 각 연락처에는 이름, 성 및 이메일 주소와 같은 기본 속성이 있습니다. 또한, 각 접점은 이와 관련된 Markdown 형식의 여러 메모를 가질 수 있습니다. 그러면 우리가 구현할 모든 리소스와 운영을 나열하는 것이 좋습니다. 이는 응용 프로그램 와이어 프레임을 시각화하는 것과 동등한 것으로 간주 될 수 있습니다. REST의 주요 원칙에 따라 각 리소스는 작업에 액세스하는 데 사용되는 HTTP 방법 인 URL로 표시됩니다. 예를 들어, get/api/contacts/12는 ID 12와의 연락처를 검색하고 Put/API/Contacts/12는 동일한 연락처를 업데이트합니다. 전체 메소드 목록은 다음과 같습니다
<code>URL HTTP Method Operation /api/contacts GET 返回联系人数组 /api/contacts/:id GET 返回 ID 为 :id 的联系人 /api/contacts POST 添加一个新联系人并返回它(添加了 id 属性) /api/contacts/:id PUT 更新 ID 为 :id 的联系人 /api/contacts/:id PATCH 部分更新 ID 为 :id 的联系人 /api/contacts/:id DELETE 删除 ID 为 :id 的联系人 /api/contacts/:id/star PUT 将 ID 为 :id 的联系人添加到收藏夹 /api/contacts/:id/star DELETE 从收藏夹中删除 ID 为 :id 的联系人 /api/contacts/:id/notes GET 返回 ID 为 :id 的联系人的笔记 /api/contacts/:id/notes/:nid GET 返回 ID 为 :id 的联系人的 ID 为 :nid 的笔记 /api/contacts/:id/notes POST 为 ID 为 :id 的联系人添加新笔记 /api/contacts/:id/notes/:nid PUT 更新 ID 为 :id 的联系人的 ID 为 :nid 的笔记 /api/contacts/:id/notes/:nid PATCH 部分更新 ID 为 :id 的联系人的 ID 为 :nid 的笔记 /api/contacts/:id/notes/:nid DELETE 删除 ID 为 :id 的联系人的 ID 为 :nid 的笔记</code>
도구 및 설정
API를 구축하는 데 사용할 기본 도구는 슬림 프레임 워크입니다. 왜? & gt; [[]는 간단하고 강력한 웹 응용 프로그램과 API를 신속하게 작성하는 데 도움이됩니다. <.> 이것은 사실입니다. 강력한 라우팅 기능은 Get and Post 이외의 사용 방법을 쉽게 사용할 수 있으며 HTTP 메소드 오버라이드 (HTTP 헤더 및 숨겨진 포스트 필드를 통해)에 대한 내장 지원을 제공하고 미들웨어 및 추가 기능을 사용하여 응용 프로그램 및 API를 활성화 할 수 있습니다. 개발은 정말 쉽습니다. Slim과 함께 Idiorm을 사용하여 데이터베이스 계층에 액세스하고 독백을 사용하여 로깅을합니다. 따라서 Composer.json 파일은 다음과 같습니다
슬림/엑스트라 및 슬림/미들웨어 패키지는 컨텐츠 유형 해상도 및 기본 인증과 같은 유용한 기능을 제공합니다. 우리의 사용자 정의 클래스는 API 네임 스페이스와 LIB 디렉토리에 있습니다. 이 시점에서 작업 디렉토리 구조는 다음과 같습니다.
{ "name": "yourname/my-contacts", "description": "Simple RESTful API for contacts management", "license": "MIT", "authors": [ { "name": "Your Name", "email": "you@yourdomain.com" } ], "require": { "slim/slim": "*", "slim/extras": "*", "slim/middleware": "*", "monolog/monolog": "*", "j4mie/paris": "*", "flynsarmy/slim-monolog": "*" }, "archive": { "exclude": ["vendor", ".DS_Store", "*.log"] }, "autoload": { "psr-0": { "API": "lib/" } } }부팅 프로그램 및 프론트 엔드 컨트롤러
앞에서 언급했듯이 bootstrap.php 파일은 응용 프로그램 설정 및 자동 로더 설정을로드 할 책임이 있습니다.
<code>URL HTTP Method Operation /api/contacts GET 返回联系人数组 /api/contacts/:id GET 返回 ID 为 :id 的联系人 /api/contacts POST 添加一个新联系人并返回它(添加了 id 属性) /api/contacts/:id PUT 更新 ID 为 :id 的联系人 /api/contacts/:id PATCH 部分更新 ID 为 :id 的联系人 /api/contacts/:id DELETE 删除 ID 为 :id 的联系人 /api/contacts/:id/star PUT 将 ID 为 :id 的联系人添加到收藏夹 /api/contacts/:id/star DELETE 从收藏夹中删除 ID 为 :id 的联系人 /api/contacts/:id/notes GET 返回 ID 为 :id 的联系人的笔记 /api/contacts/:id/notes/:nid GET 返回 ID 为 :id 的联系人的 ID 为 :nid 的笔记 /api/contacts/:id/notes POST 为 ID 为 :id 的联系人添加新笔记 /api/contacts/:id/notes/:nid PUT 更新 ID 为 :id 的联系人的 ID 为 :nid 的笔记 /api/contacts/:id/notes/:nid PATCH 部分更新 ID 为 :id 的联系人的 ID 为 :nid 的笔记 /api/contacts/:id/notes/:nid DELETE 删除 ID 为 :id 的联系人的 ID 为 :nid 的笔记</code>
{ "name": "yourname/my-contacts", "description": "Simple RESTful API for contacts management", "license": "MIT", "authors": [ { "name": "Your Name", "email": "you@yourdomain.com" } ], "require": { "slim/slim": "*", "slim/extras": "*", "slim/middleware": "*", "monolog/monolog": "*", "j4mie/paris": "*", "flynsarmy/slim-monolog": "*" }, "archive": { "exclude": ["vendor", ".DS_Store", "*.log"] }, "autoload": { "psr-0": { "API": "lib/" } } }
Slim에는 Route Groups라는 멋진 기능이 있습니다. 이 기능을 사용하면 다음과 같은 응용 프로그램 경로를 정의 할 수 있습니다.
<code>bootstrap.php composer.json README.md bin/ import install lib/ API/ public/ .htaccess index.php share/ config/ default.php db/ logs/ sql/ data/ contacts.sql users.sql tables/ contacts.sql notes.sql users.sql ssl/ mysitename.crt mysitename.key</code>
우리의 JSON 미들웨어는 "JSON Response Only"와 "JSON Encoding Body"라는 두 가지 모범 사례를 구현합니다. 이 방법은 다음과 같습니다.
인증
이 메소드는 Auth Token에 대한 php_auth_user 요청 헤더를 검색하고 존재하지 않거나 유효하지 않은 경우 401 금지 상태 및 인증 헤더를 클라이언트에게 전달합니다. verify () 메소드는 보호되므로 내 버전은 간단합니다
REST 버전 API 버전을 사용하면 기존 클라이언트에 영향을 미치지 않고 비파괴적인 변경 사항을 도입 할 수 있습니다. URL에 버전 번호를 포함 시키거나 사용자 정의 요청 헤더를 사용하여 API를 버전 할 수 있습니다. 모든 변경 사항을 기록하고 API 소비자에게 새 버전 및 해당 기능을 알리십시오.
<code>URL HTTP Method Operation
/api/contacts GET 返回联系人数组
/api/contacts/:id GET 返回 ID 为 :id 的联系人
/api/contacts POST 添加一个新联系人并返回它(添加了 id 属性)
/api/contacts/:id PUT 更新 ID 为 :id 的联系人
/api/contacts/:id PATCH 部分更新 ID 为 :id 的联系人
/api/contacts/:id DELETE 删除 ID 为 :id 的联系人
/api/contacts/:id/star PUT 将 ID 为 :id 的联系人添加到收藏夹
/api/contacts/:id/star DELETE 从收藏夹中删除 ID 为 :id 的联系人
/api/contacts/:id/notes GET 返回 ID 为 :id 的联系人的笔记
/api/contacts/:id/notes/:nid GET 返回 ID 为 :id 的联系人的 ID 为 :nid 的笔记
/api/contacts/:id/notes POST 为 ID 为 :id 的联系人添加新笔记
/api/contacts/:id/notes/:nid PUT 更新 ID 为 :id 的联系人的 ID 为 :nid 的笔记
/api/contacts/:id/notes/:nid PATCH 部分更新 ID 为 :id 的联系人的 ID 为 :nid 的笔记
/api/contacts/:id/notes/:nid DELETE 删除 ID 为 :id 的联系人的 ID 为 :nid 的笔记</code>
<code>URL HTTP Method Operation
/api/contacts GET 返回联系人数组
/api/contacts/:id GET 返回 ID 为 :id 的联系人
/api/contacts POST 添加一个新联系人并返回它(添加了 id 属性)
/api/contacts/:id PUT 更新 ID 为 :id 的联系人
/api/contacts/:id PATCH 部分更新 ID 为 :id 的联系人
/api/contacts/:id DELETE 删除 ID 为 :id 的联系人
/api/contacts/:id/star PUT 将 ID 为 :id 的联系人添加到收藏夹
/api/contacts/:id/star DELETE 从收藏夹中删除 ID 为 :id 的联系人
/api/contacts/:id/notes GET 返回 ID 为 :id 的联系人的笔记
/api/contacts/:id/notes/:nid GET 返回 ID 为 :id 的联系人的 ID 为 :nid 的笔记
/api/contacts/:id/notes POST 为 ID 为 :id 的联系人添加新笔记
/api/contacts/:id/notes/:nid PUT 更新 ID 为 :id 的联系人的 ID 为 :nid 的笔记
/api/contacts/:id/notes/:nid PATCH 部分更新 ID 为 :id 的联系人的 ID 为 :nid 的笔记
/api/contacts/:id/notes/:nid DELETE 删除 ID 为 :id 的联系人的 ID 为 :nid 的笔记</code>
{
"name": "yourname/my-contacts",
"description": "Simple RESTful API for contacts management",
"license": "MIT",
"authors": [
{
"name": "Your Name",
"email": "you@yourdomain.com"
}
],
"require": {
"slim/slim": "*",
"slim/extras": "*",
"slim/middleware": "*",
"monolog/monolog": "*",
"j4mie/paris": "*",
"flynsarmy/slim-monolog": "*"
},
"archive": {
"exclude": ["vendor", ".DS_Store", "*.log"]
},
"autoload": {
"psr-0": {
"API": "lib/"
}
}
}
<code>bootstrap.php
composer.json
README.md
bin/
import
install
lib/
API/
public/
.htaccess
index.php
share/
config/
default.php
db/
logs/
sql/
data/
contacts.sql
users.sql
tables/
contacts.sql
notes.sql
users.sql
ssl/
mysitename.crt
mysitename.key</code>
<Directory>
# Required for mod_rewrite in .htaccess
AllowOverride FileInfo
Options All -Indexes
DirectoryIndex index.php index.shtml index.html
<IfModule php5_module="">
# For Development only!
php_flag display_errors On
</IfModule>
# Enable gzip compression
<IfModule filter_module="">
AddOutputFilterByType DEFLATE application/json
</IfModule>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
<VirtualHost *:80>
ServerAdmin you@yourdomain.com
DocumentRoot "/path/to/MyApp/public"
ServerName myapp.dev
<IfModule rewrite_module="">
RewriteEngine on
## Throw a 403 (forbidden) status for non secure requests
RewriteCond %{HTTPS} off
RewriteRule ^.*$ - [L,R=403]
</IfModule>
</VirtualHost>
<IfModule ssl_module="">
NameVirtualHost *:443
Listen 443
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
<VirtualHost *:443>
ServerAdmin you@yourdomain.com
DocumentRoot "/path/to/MyApp/public"
ServerName myapp.dev
SSLEngine on
SSLCertificateFile /path/to/MyApp/share/ssl/mysitename.crt
SSLCertificateKeyFile /path/to/MyApp/share/ssl/mysitename.key
SetEnv SLIM_MODE development
</VirtualHost>
</IfModule>
입니다
편안한 API를 설계하는 방법은 무엇입니까?
위 내용은 처음부터 REST API를 구축하십시오 : 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

종종 키워드와 추적 매개 변수로 혼란스러워하는 긴 URL은 방문자를 방해 할 수 있습니다. URL 단축 스크립트는 솔루션을 제공하여 소셜 미디어 및 기타 플랫폼에 이상적인 간결한 링크를 만듭니다. 이 스크립트는 개별 웹 사이트 a에 유용합니다

Instagram은 2012 년 Facebook에서 유명한 인수에 이어 타사 사용을 위해 두 개의 API 세트를 채택했습니다. Instagram Graph API 및 Instagram Basic Display API입니다. 개발자는

Laravel은 직관적 인 플래시 방법을 사용하여 임시 세션 데이터 처리를 단순화합니다. 응용 프로그램에 간단한 메시지, 경고 또는 알림을 표시하는 데 적합합니다. 데이터는 기본적으로 후속 요청에만 지속됩니다. $ 요청-

이것은 Laravel 백엔드가있는 React Application을 구축하는 데있어 시리즈의 두 번째이자 마지막 부분입니다. 이 시리즈의 첫 번째 부분에서는 기본 제품 목록 응용 프로그램을 위해 Laravel을 사용하여 편안한 API를 만들었습니다. 이 튜토리얼에서는 Dev가 될 것입니다

Laravel은 간결한 HTTP 응답 시뮬레이션 구문을 제공하여 HTTP 상호 작용 테스트를 단순화합니다. 이 접근법은 테스트 시뮬레이션을보다 직관적으로 만들면서 코드 중복성을 크게 줄입니다. 기본 구현은 다양한 응답 유형 단축키를 제공합니다. Illuminate \ support \ Facades \ http를 사용하십시오. http :: 가짜 ([ 'google.com'=> 'Hello World', 'github.com'=> [ 'foo'=> 'bar'], 'forge.laravel.com'=>

PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

2025 PHP Landscape Survey는 현재 PHP 개발 동향을 조사합니다. 개발자와 비즈니스에 대한 통찰력을 제공하는 프레임 워크 사용, 배포 방법 및 과제를 탐색합니다. 이 조사는 현대 PHP Versio의 성장을 예상합니다


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

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

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Dreamweaver Mac版
시각적 웹 개발 도구
