>  기사  >  백엔드 개발  >  PHP 프레임워크 Lumen을 사용하여 간단하고 사용하기 쉬운 RESTful API 서비스 개발

PHP 프레임워크 Lumen을 사용하여 간단하고 사용하기 쉬운 RESTful API 서비스 개발

WBOY
WBOY원래의
2023-06-27 11:51:01982검색

인터넷 기술의 급속한 발전으로 인해 점점 더 많은 애플리케이션이 데이터 전송 및 상호 작용에 RESTful API를 사용하기 시작했습니다. RESTful API는 HTTP 프로토콜 기반의 경량 통신 프레임워크로 확장이 용이하고 호환성이 강한 장점이 있습니다. PHP는 매우 널리 사용되는 서버 측 프로그래밍 언어이며 선택할 수 있는 우수한 프레임워크가 많이 있습니다. 그중 Lumen은 RESTful API 서비스를 빠르게 구축할 수 있는 경량 PHP 프레임워크입니다.

이 글에서는 Lumen을 사용하여 간단하고 사용하기 쉬운 RESTful API 서비스를 개발하는 단계를 소개합니다. 다음 측면을 다룹니다.

  1. Lumen 소개
  2. RESTful API의 기본
  3. RESTful API 서비스 구축 시작
  4. 컨트롤러 작성
  5. 모델 작성
  6. 경로 작성
  7. API 테스트

1.

Lumen은 Laravel 프레임워크의 마이크로 프레임워크로 빠르고 효율적입니다. Laravel에 비해 Lumen은 더 가볍고 응답 속도가 더 빠릅니다. Lumen은 PHP 7 이상을 기반으로 하고 RESTful API 캡슐화를 지원하는 종속성 관리 도구로 Composer를 사용합니다.

2. RESTful API 기본 지식

RESTful API는 HTTP 프로토콜 기반의 통신을 위한 데이터 전송 및 상호 작용 방법입니다. RESTful API의 기본 제약 조건은 다음과 같습니다.

  • 클라이언트/서버 모델
  • 상태 비저장
  • 캐시 가능
  • 통합 인터페이스
  • 계층형 시스템

일반적으로 사용되는 HTTP 메서드에는 GET, POST, PUT 및 DELETE가 있습니다. 이러한 HTTP 메소드와 URL 리소스 경로를 결합하면 RESTful API 서비스를 구축할 수 있습니다.

3. RESTful API 서비스 구축을 시작하세요

먼저 Lumen 프레임워크를 설치해야 합니다. 커맨드 라인 터미널에 다음 명령어를 입력하세요:

composer create-project --prefer-dist laravel/lumen your-project-name

설치가 완료될 때까지 기다린 후, 프로젝트 디렉토리에 들어가 artisan 커맨드 라인 툴을 통해 컨트롤러, 모델 등 필요한 파일들을 생성하세요:

php artisan make:controller YourControllerName
php artisan make:model YourModelName

이제, 설치가 완료되었습니다. Lumen 프레임워크 설치 및 다음 작업에 필요한 파일이 생성됩니다.

4. 컨트롤러 작성

컨트롤러는 요청을 처리하고 응답을 반환하는 데 사용되는 PHP 클래스입니다. Lumen 프레임워크에서 컨트롤러는 일반적으로 /app/Http/Controllers 폴더에 저장됩니다.

데이터에 대한 CRUD 작업을 처리하는 컨트롤러를 작성하세요. 여기서는 ID, 이름, 이메일 및 기타 필드를 포함하는 사용자 데이터 테이블이 있다고 가정합니다.

<?php

namespace AppHttpControllers;

use AppModelsUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;

class UserController extends Controller
{
    public function index()
    {
        return response()->json(User::all());
    }

    public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'name' => 'required|max:255',
            'email' => 'required|email|unique:users'
        ]);

        if ($validator->fails()) {
            return response()->json($validator->errors(), 400);
        } else {
            $user = User::create([
                'name' => $request->input('name'),
                'email' => $request->input('email')
            ]);
            return response()->json($user, 201);
        }
    }

    public function update(Request $request, $id)
    {
        $validator = Validator::make($request->all(), [
            'name' => 'max:255',
            'email' => 'email|unique:users'
        ]);

        if ($validator->fails()) {
            return response()->json($validator->errors(), 400);
        } else {
            $user = User::find($id);
            if ($user) {
                $user->name = $request->input('name');
                $user->email = $request->input('email');
                $user->save();
                return response()->json($user);
            } else {
                return response()->json(['error' => 'User not found'], 404);
            }
        }
    }

    public function show($id)
    {
        $user = User::find($id);
        if ($user) {
            return response()->json($user);
        } else {
            return response()->json(['error' => 'User not found'], 404);
        }
    }

    public function destroy($id)
    {
        $user = User::find($id);
        if ($user) {
            $user->delete();
            return response()->json(['message' => 'User deleted']);
        } else {
            return response()->json(['error' => 'User not found'], 404);
        }
    }
}

여기에서는 index, store, update, show 및 destroy 5가지 메소드가 포함된 UserController라는 컨트롤러 클래스를 작성합니다. 이는 각각 RESTful API의 5가지 일반적인 작업(리소스 획득, 리소스 생성, 리소스 업데이트, 지정된 리소스 획득 및 리소스 삭제)에 해당합니다.

위 코드에서는 Lumen 프레임워크의 응답자(response())와 모델(User)과 Lumen 프레임워크에서 제공하는 검증자(Validator)를 사용했습니다. 이 외에도 컨트롤러에 다른 종속성을 도입하여 더 복잡한 작업을 수행할 수도 있습니다.

5. 쓰기 모델

모델은 일반적으로 데이터 요청을 처리하기 위해 컨트롤러가 호출될 때 데이터를 올바르게 읽고 처리할 수 있도록 데이터 테이블을 표현하는 데 사용됩니다. Lumen 프레임워크에서 모델 파일은 일반적으로 /app/Models 폴더에 저장됩니다.

다음은 간단한 모델입니다. 이 모델에서는 데이터 테이블 이름이 users라는 데 동의했습니다.

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class User extends Model
{
    protected $table = 'users';
    protected $fillable = ['name', 'email'];
}

위 코드의 User 클래스는 몇 가지 필수 속성 변수를 포함하는 Lumen 프레임워크의 Model 클래스에서 상속됩니다. 및 방법. 여기서는 protected $table = 'users'를 사용하여 이 모델에 해당하는 데이터 테이블을 사용자로 명명하는 데 동의하고, fillable 속성을 사용하여 일괄 할당할 수 있는 필드를 제한합니다.

6. 쓰기 라우팅

라우팅은 요청의 URL 경로와 요청을 배포하는 데 사용되는 해당 컨트롤러 방법을 지정합니다. Lumen 프레임워크에서 라우팅 파일은 일반적으로 /routes 폴더에 저장됩니다.

<?php

$router->get('/', function () use ($router) {
    return $router->app->version();
});

$router->get('/users', 'UserController@index');
$router->post('/users', 'UserController@store');
$router->get('/users/{id}', 'UserController@show');
$router->put('/users/{id}', 'UserController@update');
$router->delete('/users/{id}', 'UserController@destroy');

위 코드에서는 라우터($router)의 get, post, put 및 delete를 사용하여 HTTP 요청 방법을 지정하는 5가지 작업에 해당하는 URL 경로와 처리 방법을 지정합니다.

7. API 테스트

이제 Lumen 프레임워크 설치, 컨트롤러 코드 작성, 모델 정의 및 라우팅 설정이 성공적으로 완료되었으며 테스트할 수 있습니다. 웹 서비스를 시작하려면 명령줄 터미널에 다음 명령을 입력하세요.

php -S 127.0.0.1:8000 -t public

그런 다음 브라우저를 열고 localhost:8000/users를 입력하여 위 API 서비스에 액세스하면 사용자 목록이 표시됩니다. 또는 Postman 또는 기타 HTTP 클라이언트 도구를 사용하여 인터페이스를 테스트할 수 있습니다.

요약

Lumen 프레임워크를 사용하면 간단하고 사용하기 쉬운 RESTful API 서비스를 쉽게 구축할 수 있습니다. Lumen 프레임워크의 지원으로 컨트롤러, 모델, 경로 등 필요한 파일을 빠르게 작성하고 테스트용 명령줄 도구를 통해 웹 서비스를 시작할 수 있습니다. 전통적인 PHP 개발 방법과 비교하여 이 방법은 개발 효율성과 프로그램 운영 효율성을 크게 향상시킬 수 있습니다.

위 내용은 PHP 프레임워크 Lumen을 사용하여 간단하고 사용하기 쉬운 RESTful API 서비스 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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