서비스 요청 PHP + API Rest + GraphQL
문맥화:
Vamos construir um servidor GraphQL + RestFull escrito em ApiPlatform, este projeto irá te ajudar a entender um sobre a facilidade de construir uma API Rest e GraphQL mesmo projeto.
Para este tutorial eu desenvolvi uma lista de itens a serem pagos para um planejamento de casamento.
A ideia deste projeto é bem simples casal tem 0::N eventos cada evento tem um nome e valor.
Bom, chega de conversa e vamos para o código:
전제 조건:
설치:
Abra um terminal e crie um diretório onde você deseja que seu código fique em seu computador.
$ cd ~/
$ mkdir wedding
$ cd wedding
Com isso seu projeto Symfony será criado, execute passo a passo.
$ composer create-project symfony/skeleton:"6.1.*" .
$ composer req orm # y para criar o docker-compose.yml
$ composer req api
$ composer require webonyx/graphql-php
Suba seu container com banco de dados configurado
$ docker-compose up -d
Agora vamos criar nossas entidades, mas antes precisamos criar uma dependsência de desenvolvimento
$ composer require --dev symfony/maker-bundle
엔티다이드
Couple
, em seu 터미널 숫자:$ php bin/console make:entity Couple
manName: <string:255> not null
womanName: <string:255> not null
Siga com os nomes como no print:
엔티다이드
Event
, em seu 터미널 숫자:$ php bin/console make:entity Event
name: <string:255> not null
price: <float> not null
Vamos voltar para a criação de entidade, mas vamos só criar uma relação 0::N de Couple com Events
$ php bin/console make:entity Couple
No mapeamento da classe Event você precisará ajustar na mão o relacionamento, deve ficar assim:
#src/Entity/Event.php
class Event
{
...
#[ORM\ManyToOne(targetEntity: Couple::class)]
#[ORM\JoinColumn(name: "couple_id", referencedColumnName: "id", nullable: true)]
private $couple;
...
}
Vamos gerar nossa migrações, no seu e subir a estrutura de SQL.
$ php bin/console make:migration
$ php bin/console doctrine:migration:migrate
프레시오네
yes
para apagar todos os dados do banco de app구성
Vamos partir de agora mexer somente nas entidades.
1.) 클래스 src/Entity/Event.php에서 ApiResource 속성 가져오기
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use App\Repository\EventRepository;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: EventRepository::class)]
#[ApiResource]
class Event
{
...
#[ORM\ManyToOne(targetEntity: Couple::class)]
#[ORM\JoinColumn(name: "couple_id", referencedColumnName: "id", nullable: true)]
#[ApiSubresource]
private $couple;
...
2.) 클래스 src/Entity/Couple.php에서 ApiResource 속성 가져오기
namespace App\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
use App\Repository\CoupleRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: CoupleRepository::class)]
#[ApiResource]
class Couple
...
실행하다:
Rode seu servidor local php para ter acesso ao localhost
액세스: http://localhost:7777/api - Swagger 문서 RESTAPI
액세스: http://localhost:7777/api/graphql - 놀이터 GraphQL
Veja algumas는 GraphQL에서 você pode fazer를 쿼리합니다.
Para criar um novo casal faça isso:
mutation CretateCouple($couple: createCoupleInput! ) {
createCouple(input: $couple) {
couple {
manName
womanName
}
}
}
#query variables
{
"couple":{
"manName": "joe",
"womanName": "mary"
}
}
Para buscar todos:
query {
couples {
edges {
node {
manName
womanName
}
}
}
}
결론
Espero que tenham gostado fiz um exemplo bem simples para ajudar a entender mais sobre essas ferramentas tão maravilhosas que nem semper temos contato.
참조:
Symfony
ApiPlatform
Symfony Maker
Reference
이 문제에 관하여(서비스 요청 PHP + API Rest + GraphQL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jefersonguedes/crie-um-servidor-php-api-rest-graphql-15d6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)