openapi-generator
  • 🌐openapi-generator
  • Overview
    • ⬇️Installation
    • 🔧Configuration
  • Definitions
    • 📪Define a path (route)
    • ❓Define a request
    • ✍️Define a response
  • Usage
    • ⚙️Generate OpenAPI
Powered by GitBook
On this page
  1. Definitions

Define a response

Since there isn't an (easy) way to do reflection of the response method, we need to use attribute or phpDoc.

The attribute this time is #[OpenApi\Response] and as second parameter accepts the JSON example (in case of phpDoc) or an array example (in the case of attribute)

/**
 * @OpenApi\Response(statusCode=200, response=App\Models\Example)
 * @OpenApi\Response(statusCode=404, response={
 *     "message": "not found",
 *     "nrs": [{"issue": "#123"}],
 *     "metadata": {"node": {"server": "1"}}
 *     })
 */
public function index(Request $request): JsonResponse
{
    try {
        // ...
    } catch (CustomException $e) {
        return response()->json([
            'message' => $e->getMessage(),
            'issues' => $e->getIssues(),
            'metadata' => [
                'node' => [
                    'server' => $request->host(),
                ]
            ]
        ]);
    }
}

// ... or 

#[OpenApi\Response(statusCode: 404, response: [
    'message' => 'not found',
    'nrs' => [['issue' => '#123']],
    'metadata' => ['node' => ['server' => '1']],
])]
public function index(Request $request): JsonResponse
{
    try {
        // ...
    } catch (CustomException $e) {
        return response()->json([
            'message => $e->getMessage(),
            'issues' => $e->getIssues(),
            'metadata' => [
                'node' => [
                    'server-1' => $request->host(),
                ]
            ]
        ]);
    }
}
PreviousDefine a requestNextGenerate OpenAPI

Last updated 1 year ago

✍️