Php [API平台][Symfony 4]如何在Swagger(OpenAPI)中添加端点?
我将Symfony Flex和Composer与Symfony 4一起使用,并在我的应用程序中安装了API平台的服务器组件 如何在Swagger(OpenAPI)中为自定义控制器添加端点Php [API平台][Symfony 4]如何在Swagger(OpenAPI)中添加端点?,php,symfony,swagger,api-platform.com,Php,Symfony,Swagger,Api Platform.com,我将Symfony Flex和Composer与Symfony 4一起使用,并在我的应用程序中安装了API平台的服务器组件 如何在Swagger(OpenAPI)中为自定义控制器添加端点 <?php /** * Application features */ namespace App\Controller; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Annota
<?php
/**
* Application features
*/
namespace App\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
/**
* Checks if the service is alive.
*
* @package Behat\Behat\Context\Context
*/
class HealthcheckController
{
/**
* @Route(
* name="api_healthcheck_entrypoint",
* path="/api/ping",
* methods={"GET"},
* )
*/
public function __invoke()
{
return new JsonResponse(array('ping' => 'pong'));
}
}
你必须在实体中这样做。您必须具有ApiResource注释,以便可以在其中添加自定义操作。在这种情况下,您必须放置以下注释:
* "api_healthcheck_entrypoint"={
* "controller"=HealthcheckControllerAction::class,
* "method"="GET",
* "path"="/api/ping
* "defaults"={"_api_receive"=false},",
* "normalization_context"={
* "groups"={"ping"}
* }
所以。。。如果你不遵循他的理念,为什么要使用API平台?如果您查看文档,有3种方法可以做到这一点:*实体*XML*yaml中的注释,但控制器中没有注释……您不一定需要实体,但需要将类设置为资源。看。另请参见和。
* "api_healthcheck_entrypoint"={
* "controller"=HealthcheckControllerAction::class,
* "method"="GET",
* "path"="/api/ping
* "defaults"={"_api_receive"=false},",
* "normalization_context"={
* "groups"={"ping"}
* }