¿Es posible cargar anotaciones Swagger de una clase o un archivo diferente?

Kareem Essawy:

Tengo el siguiente método de PHP simple como la siguiente

/**
*
* (swagger annotation to be called from a different class)
*
*/
public function getApiCall()
{
  //Do something
}

y necesito incluir la documentación de largo Swagger en la anotación anterior el método, por lo que
es posible escribir la anotación en una clase diferente? y lo llaman aquí con algo como

/**
*
*call('App\Http\Controllers\testAnnotation');
*/

El objetivo principal es tener una clase limpia y sin tantas líneas de documentación y anotaciones en el mismo.

Yivi:

Cargando "anotaciones de una clase diferente" no es algo que tiene mucho sentido. Las anotaciones se leen en el código anotado, eso es todo su propósito.

Pero si desea mantener la configuración y el código separado, usted no tiene que utilizar Swagger-PHP para generar el archivo de configuración arrogancia.

El paquete es simplemente una manera conveniente para generar el swagger.jsonarchivo de anotaciones de código.

Pero si usted no desea utilizar las anotaciones en el primer lugar, y mantener sus clases limpia desde la configuración ajena (algo que yo personalmente aplaudo), sólo ... no uso Swagger-Fil y construir sus propios archivos de configuración fuera de sus clases .

Incluso se puede escribir en YAML, si se siente más cómodo que escribir JSON con la mano. Por ejemplo::

openapi: 3.0.0
info:
  title: 'Search API'
  version: 1.0.0
servers:
- url: 
  description: Current host server
- url: https:your-server.com
  description: Prod server
paths:
  /foo:
    post:
      summary: 'Creates a new foo'
      description: 'Builds a new Foo and makes it available to Bar'
      requestBody:
        description: 'Foo '
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Foo'
      responses:
        '201':
          description: Foo created
        '202':
          description: Foo queued, it will be eventually created.
components:
  schemas:
    Foo:
      type: object
      required:
      - name
      - size
      properties:
        name:
          type: string
        size:
          type: integer

Esto, una vez convertidos a JSON (hay muchas bibliotecas de hacer esto, o incluso se podría utilizar un servicio gratuito como éste ), se puede alimentar el JSON resultante de arrogancia directamente.

Por ejemplo, el análisis sintácticos YAML anterior a este archivo JSON . Usted puede probar fácilmente por dirigirse a la instancia de demostración Swagger , y más allá de la URL JSON en el "explorar" barra de direcciones, y obtendrá algo como esto:

introducir descripción de la imagen aquí

Al final, que no es mucho el trabajo que el uso de anotaciones (si los hay más trabajo en absoluto), y se puede mantener a sus clases de entidad limpia de las preocupaciones de configuración.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=283713&siteId=1
Recomendado
Clasificación