Symfony4와 API Platform을 사용하여 5분 만에 API 서버 만들기
7432 단어 심포니PHP심포니4API-Platform
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를 만들었습니다. 필드는
준비했습니다.
엔티티 만들기
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ぇ
Reference
이 문제에 관하여(Symfony4와 API Platform을 사용하여 5분 만에 API 서버 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ippey_s/items/9cceec252babe8057047텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)