Створення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 52 53 54 55
- - - / src /实体/ Conference.php+ + + b / src /实体/ Conference.php@@ 2 35 + 2,52 @@名称空间的应用程序\实体;+使用ApiPlatform \ \ ApiResource元数据;+使用ApiPlatform \ \元数据获取;+使用ApiPlatform \ \ GetCollection元数据;使用App \ Repository \ ConferenceRepository;使用原则\常见\ \ ArrayCollection集合;使用原则\常见\集合\集合;使用原则\ ORM \ ORM映射;使用Syob娱乐下载mfony \桥\学说\验证器\ \ UniqueEntity约束;+使用Syob娱乐下载mfony \序列化器\注释\ \组件组;使用Syob娱乐下载mfony轰\组件\字符串\ \ SluggerInterface;# (ORM \实体(repositoryClass: ConferenceRepository::类)]#【UniqueEntity(“鼻涕虫”)]+ #【ApiResource (+操作:[+新得到(normalizationContext:(“团体”= > '会议:条目']),+新GetCollection (normalizationContext:(“团体”= > '会议:列表'])+),+顺序:['年' = > ' DESC ', '城市' = > ' ASC '],+ paginationEnabled:假的,+))类会议{# (ORM \ Id) # (ORM \ GeneratedValue) # (ORM \列)+ #【组([会议:列表,'会议:条目']))美元私人? int id =零;# [ORM列(长度:255)\]+ #【组([会议:列表,'会议:条目']))私人?字符串$城市=零;# [ORM列(长度:4)\]+ #【组([会议:列表,'会议:条目']))私人?字符串$年=零;# (ORM \列)+ #【组([会议:列表,'会议:条目']))私人? bool国际美元=零;# (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 62 63 64 65 66
- - - / src /实体/ Comment.php+ + + b / src /实体/ Comment.php63 @@ @@ 2 41 + 2名称空间的应用程序\实体;+使用ApiPlatform \学说\ Orm SearchFilter \滤波器\;+使用ApiPlatform \ \ ApiFilter元数据;+使用ApiPlatform \ \ ApiResource元数据;+使用ApiPlatform \ \元数据获取;+使用ApiPlatform \ \ GetCollection元数据;使用App \ Repository \ CommentRepository;使用原则\ DBAL \类型\类型;使用原则\ ORM \ ORM映射;+使用Syob娱乐下载mfony \序列化器\注释\ \组件组;使用Syob娱乐下载mfony \组件\验证器\约束断言;# (ORM \实体(repositoryClass: CommentRepository::类)]# (ORM \ HasLifecycleCallbacks)+ #【ApiResource (+操作:[+新得到(normalizationContext:(“团体”= > '评论:条目']),+新GetCollection (normalizationContext:(“团体”= >“备注:列表”))+),+顺序:[' createdAt ' = > ' DESC '],+ paginationEnabled:假的,+))+ # [ApiFilter (SearchFilter::类,属性:[会议' = > '完全']))类评论{# (ORM \ Id) # (ORM \ GeneratedValue) # (ORM \列)+ #【组([备注:列表,'评论:条目']))美元私人? int id =零;# [ORM列(长度:255)\]#(断言\ NotBlank)+ #【组([备注:列表,'评论:条目']))私人?字符串$ author =零;# (ORM \列(类型:类型:文本)]#(断言\ NotBlank)+ #【组([备注:列表,'评论:条目']))私人?字符串文本美元=零;# [ORM列(长度:255)\]#【维护\ NotBlank】#[维护邮件\]+ #【组([备注:列表,'评论:条目']))私人?字符串$邮件=零;# (ORM \列)+ #【组([备注:列表,'评论:条目']))私人? \ DateTimeImmutable createdAt美元=零;# (ORM \ ManyToOne (inversedBy:“评论”)]# (ORM \ JoinColumn(可以为空:false))+ #【组([备注:列表,'评论:条目']))私人?会议会议美元=零;# (ORM \列(长度:255年,可以为空:真)]+ #【组([备注:列表,'评论:条目']))私人?字符串$ 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
。