Php [API平台][Symfony 4]如何在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

我将Symfony Flex和Composer与Symfony 4一起使用,并在我的应用程序中安装了API平台的服务器组件

如何在Swagger(OpenAPI)中为自定义控制器添加端点

<?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"}
 *              }