СтворенняAPIзадопомогоюAPI平台
СтворенняAPIзадопомогоюAPI平台
Мизавершилирозробкувеб-сайтугостьовоїкниги。Тепер,щобдозволитибільшгнучковикористовуватидані,якщодорозробкиAPI ?APIможевикористовуватисямобільнимзастосунком,щобвідображативсіконференції,їхкоментарій,можливо,дозволитьучасникамвідправлятикоментарі。
НацьомукроцімиреалізуємоAPI,щодоступнийлишедлячитання。
ВстановленняAPI平台
МожнастворитиAPIнаписавшидеякийкод,алеякщомихочемовикористовуватистандарти,намкращевикористовуватирішення,якевжеберенасебекопіткуроботу。ТакерішенняякAPI平台:
1
美元ob娱乐下载symfony作曲家请求api
СтворенняAPIдляконференцій
Кількаатрибутівукласі会议——цевсе,щонампотрібнодляналаштуванняAPI:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
- - - / src /实体/ Conference.php+ + + b / src /实体/ Conference.php@@ 2 35 + 2 48 @@名称空间的应用程序\实体;+使用ApiPlatform \ \注释\ ApiResource核心;使用App \ Repository \ ConferenceRepository;使用原则\常见\ \ ArrayCollection集合;使用原则\常见\集合\集合;使用原则\ ORM \ ORM映射;使用Syob娱乐下载mfony \桥\学说\验证器\ \ UniqueEntity约束;+使用Syob娱乐下载mfony \序列化器\注释\ \组件组;使用Syob娱乐下载mfony轰\组件\字符串\ \ SluggerInterface;# (ORM \实体(repositoryClass: ConferenceRepository::类)]#【UniqueEntity(“鼻涕虫”)]+ #【ApiResource (+ collectionOperations:[‘得到’= > [' normalization_context ' = >[‘组织’= > '会议:列表']]],+ itemOperations:[‘得到’= > [' normalization_context ' = >[‘组织’= > '会议:条目']]],+顺序:['年' = > ' DESC ', '城市' = > ' ASC '],+ paginationEnabled:假的,+))类会议{# (ORM \ Id) # (ORM \ GeneratedValue) # [ORM \列(类型:“整数”)]+ #【组([会议:列表,'会议:条目']))私人$ id;# (ORM \列(类型:字符串,长度:255)]+ #【组([会议:列表,'会议:条目']))私人美元城市;# (ORM \列(类型:字符串,长度:4)]+ #【组([会议:列表,'会议:条目']))私人美元;# (ORM \列(类型:“布尔”))+ #【组([会议:列表,'会议:条目']))私人国际美元;# (ORM \ OneToMany (mappedBy:“会议”,targetEntity:备注::类,orphanRemoval: true)]美元私人评论;# (ORM \列(类型:字符串,长度:255年,独特:true))+ #【组([会议:列表,'会议:条目']))私人美元弹头;公共函数__construct ()
ОсновнийатрибутApiResource
налаштовуєAPIдляконференцій。Вінобмежуєможливіопераціїметоду得到
іналаштовуєрізніречі:наприкладякіполявідображатитавякомупорядку。
ЗазамовчуваннямосновноюточкоювходуєдляAPI/ api
,завдякиконфігураціїз配置/线路/ api_platform.yaml
,щобуладоданарецептомпакета。
Веб-інтерфейсдозволяєвзаємодіятизAPI:
Використовуйтейого,щобперевіритирізніможливості:
Уявітьсобі,скількичасубудепотрібно,щобреалізувативсецезнуля!
СтворенняAPIдлякоментарів
Зробітьтесамедлякоментарів:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
- - - / src /实体/ Comment.php+ + + b / src /实体/ Comment.php@@ 2,40 + 2,58 @@名称空间的应用程序\实体;+使用ApiPlatform \ \注释\ ApiFilter核心;+使用ApiPlatform \ \注释\ ApiResource核心;+使用ApiPlatform \ \桥\学说核心\ Orm SearchFilter \滤波器\;使用App \ Repository \ CommentRepository;使用原则\ ORM \ ORM映射;+使用Syob娱乐下载mfony \序列化器\注释\ \组件组;使用Syob娱乐下载mfony \组件\验证器\约束断言;# (ORM \实体(repositoryClass: CommentRepository::类)]# (ORM \ HasLifecycleCallbacks)+ #【ApiResource (+ collectionOperations:[‘得到’= > [' normalization_context ' = >[“团体”= >“备注:列表”]]],+ itemOperations:[‘得到’= > [' normalization_context ' = >[‘组织’= > '评论:条目']]],+顺序:[' createdAt ' = > ' DESC '],+ paginationEnabled:假的,+))+ # [ApiFilter (SearchFilter::类,属性:[会议' = > '完全']))类评论{# (ORM \ Id) # (ORM \ GeneratedValue) # [ORM \列(类型:“整数”)]+ #【组([备注:列表,'评论:条目']))私人$ id;# (ORM \列(类型:字符串,长度:255)]#(断言\ NotBlank)+ #【组([备注:列表,'评论:条目']))私人美元作者;# (ORM \列(类型:“文本”)]#(断言\ NotBlank)+ #【组([备注:列表,'评论:条目']))私人美元文本;# (ORM \列(类型:字符串,长度:255)]#【维护\ NotBlank】#[维护邮件\]+ #【组([备注:列表,'评论:条目']))美元的私人电子邮件;# (ORM \列(类型:datetime_immutable)]+ #【组([备注:列表,'评论:条目']))私人createdAt美元;# [ORM \ ManyToOne (targetEntity:会议::类,inversedBy:“评论”)]# (ORM \ JoinColumn(可以为空:false))+ #【组([备注:列表,'评论:条目']))美元的私人会议;# (ORM \列(类型:字符串,长度:255年,可以为空:true))+ #【组([备注:列表,'评论:条目']))私人photoFilename美元;# (ORM \列(类型:字符串,长度:255年,选择:(“默认”= >“提交”)))
Дляналаштуваннякласувикористовуютьсятісаміатрибути。
Обмеженнякоментарів,щонадаютьсяAPI
ЗазамовчуваннямAPI平台надаєдоступдовсіхзаписівзбазиданих。АледлякоментарівтількиопублікованімаютьбутичастиноюAPI。
Якщовампотрібнообмежитиелементи,щоповертаютьсяAPI,створітьсервіс,якийреалізуєQueryCollectionExtensionInterface
,щобкеруватизапитом教义,якавикористовуєтьсядляколекцій,та/абоQueryItemExtensionInterface
,щобкеруватиелементами:
Класрозширеннязапитузастосовуєсвоюлогікутількидоресурсу评论
ізмінюєконструкторзапитів教义,щобвраховуватикоментарітількивстані发表
。
Налаштування歌珥
ЗазамовчуваннямполітикабезпекитогожпоходженнясучаснихHTTP-клієнтівробитьвикликAPIзіншогодоменузабороненим。Бандл歌珥,щовстановленийякчастина作曲家请求api
,відправляєзаголовкиспільноговикористанняресурсівзрізнихджерелнаосновізмінноїсередовищаCORS_ALLOW_ORIGIN
。
Зазамовчуваннямйогозначення,щовизначеноу.env
,дозволяєHTTP-запитивід本地主机
і127.0.0.1
набудь-якийпорт。Цесамете,щонампотрібнодлянаступногокроку,оскількимистворимоОЗуякогобудесвійвласнийвеб-сервер,щобудевикликатиAPI。
Йдемодалі
- НавчальнийпосібникSyob娱乐下载mfonyCasts: API平台;
- ЩобувімкнутипідтримкуGraphQL,виконайтекоманду
作曲家需要webonyx / graphql-php
,апотімперейдітьзапосиланням/ api / graphql
。