contributte / apitte

:wrench: An opinionated and enjoyable API framework based on Nette Framework. Supporting content negotiation, debugging, middlewares, attributes, annotations and loving openapi/swagger.
https://contributte.org/packages/contributte/apitte/
MIT License
61 stars 37 forks source link

Merge endpoint parameters specification if OpenApi annotation is provided #199

Closed besir closed 1 year ago

besir commented 1 year ago

Example:

    /**
     * @Path("/")
     * @Method("GET")
     * @Tag(name="@authenticated", value="User")
     *
     * @RequestParameters({
     *     @RequestParameter(name="filters", in="query", required=false, description="Filters", type="object"),
     * })
     *
     * @RequestBody("\App\Api\Entity\Request\Employee\EmployeeList")
     *
     *
     * @OpenApi("
     *    summary: Get employees
     *    operationId: getEmployees
     *    tags:
     *       - Employee
     *    security:
     *       - BearerAuth: []
     *    parameters:
     *     - in: query
     *       name: filters
     *       schema:
     *         type: object
     *         items:
     *           type: string
     *       style: deepObject
     *       example: {'foo': 'bar'}
     *    responses:
     *       200:
     *           description: Emploeey list
     *           content:
     *               application/json:
     *                   example:
     *       default:
     *           description: unexpected error
     * ")
     */
    public function getEmployees(ApiRequest $request, ApiResponse $response): ApiResponse
    {
        //...

        return $response->writeJsonBody([]);
    }
image