Symfony4와 API Platform을 사용하여 5분 만에 API 서버 만들기

API Platform은 오픈 소스 API 프레임 워크입니다. Symfony에서 작동하고 약간의 설정으로 쉽게 API 서버를 구축할 수 있습니다. 여기에서는 Symfony4와 API Platform에서 API 서버를 구축하는 절차를 소개합니다. 타이틀대로, 사쿠와 5분 정도로 구축할 수 있습니다.

1-2분: 설치



설치는 composer를 이용합니다. API 서버를 구축하는 것만으로는 api만으로 필요한 것은 모두 인스톨 할 수 있습니다만, 여기에서는 동작 확인용과 작업 효율 향상을 위해, maker와 server를 추가로 인스톨 하고 있습니다.

다양한 설치
# Symfony4プロジェクトを作成
composer create-project symfony/skeleton symfony4-api-sample
cd symfony4-api-sample
# API Platformフレームワークインストール
composer req api
# Entityをコマンドラインから作成するためにmakerをインストール
composer req maker
# 動作確認用のサーバコマンドをインストール
composer req server --dev

3분: DB 설정



이번에는 SQLite를 이용했습니다. 그래서 .env를 조금 수정합니다.

.env
###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
- DATABASE_URL=mysql://db_user:[email protected]:3306/db_name
+ DATABASE_URL=sqlite:///%kernel.project_dir%/var/data.db
###< doctrine/doctrine-bundle ###

수정 후 DB를 만듭니다.

DB 생성
bin/console doctrine:database:create

4분: 엔티티 생성



이번에는 Product라는 Entity를 만들었습니다. 필드는
  • name(string)
  • price(integer)
  • isAvailable(bool)

  • 준비했습니다.

    엔티티 만들기
    bin/console make:entity
    
     Class name of the entity to create or update (e.g. OrangeChef):
     > Product
    
     created: src/Entity/Product.php
     created: src/Repository/ProductRepository.php
    
     Next: When you're ready, create a migration with make:migration
    

    만든 Entity에 Annotation을 추가합니다.

    Product.php
    <?php
    
    namespace App\Entity;
    
    use Doctrine\ORM\Mapping as ORM;
    + use ApiPlatform\Core\Annotation\ApiResource;
    
    /**
     * @ORM\Entity(repositoryClass="App\Repository\ProductRepository")
    +  * @ApiResource
     */
    class Product
    {
    

    작성한 Entity를 이용하여 DB에 테이블을 작성합시다.

    테이블 만들기
    bin/console doctrine:schema:create
    

    5분: 실행



    이것으로 Product의 데이터를 제어하는 ​​API군이 완성되었습니다. 실제로 움직이자.

    서버 시작
    bin/console server:run
    

    http://localhost:8000/api 방문하면 ...



    할 수 있었습니다! 제품을 제어하기 위한 API 목록과 사용 방법을 설명하는 페이지가 완성되었습니다. 그럼 실제로 API를 실행해 보겠습니다. 여기에서는 등록과 리스트 취득을 실행해 보겠습니다.

    curl로 등록
    curl --request POST \
      --url http://localhost:8000/api/products \
      --header 'accept: application/json' \
      --header 'content-type: application/json' \
      --data '{
        "name": "紅茶",
        "price": 450,
        "isAvailable": true
    }'
    

    response
    {
        "id": 2,
        "name": "紅茶",
        "price": 450,
        "isAvailable": true
    }
    



    curl에서 목록 얻기
    curl --request GET \
      --url http://localhost:8000/api/products \
      --header 'accept: application/json'
    

    response
    [
        {
            "id": 1,
            "name": "コーヒー",
            "price": 320,
            "isAvailable": true
        },
        {
            "id": 2,
            "name": "紅茶",
            "price": 450,
            "isAvailable": true
        }
    ]
    



    요약



    이런 식으로 바삭바삭하게 API 서버를 구축할 수 있습니다. 설정 등으로 OAuth2를 넣거나 검증을 설정하거나 등 커스터마이즈 할 수 있으므로, 꼭 한번 사용해보십시오. 여기까지의 프로젝트를 GitHub에 준비했으므로, 이쪽도 봐 주세요.

    htps : // 기주 b. 코 m / ぺ y / sym fu ny 4-Api-sa mpぇ

    좋은 웹페이지 즐겨찾기