/** * Get the actions URI. * * @return string */ public function getUri() { $uri = '/'; if (($annotation = $this->getAnnotationByType('Method\\Method')) && isset($annotation->uri)) { $uri = trim($annotation->uri, '/'); } else { return; } if (!starts_with($uri, '{?')) { $uri = '/' . $uri; } return '/' . trim(trim($this->resource->getUri(), '/') . rtrim($uri, '/'), '/'); }
/** * Append a request subsection to an action. * * @param string $contents * @param \Dingo\Blueprint\Annotation\Request $request * @param \Dingo\Blueprint\Resource $resource * * @return void */ protected function appendRequest(&$contents, $request, Resource $resource) { $this->appendSection($contents, 'Request'); if (isset($request->identifier)) { $contents .= ' ' . $request->identifier; } $contents .= ' (' . $request->contentType . ')'; if (!empty($request->headers) || $resource->hasRequestHeaders()) { $this->appendHeaders($contents, array_merge($resource->getRequestHeaders(), $request->headers)); } if (isset($request->attributes)) { $this->appendAttributes($contents, collect($request->attributes), 1); } if (isset($request->body)) { $this->appendBody($contents, $this->prepareBody($request->body, $request->contentType)); } }
/** * Append a response subsection to an action. * * @param string $contents * @param \Dingo\Blueprint\Annotation\Response $response * @param Resource|Resource $resource * */ protected function appendResponse(&$contents, Annotation\Response $response, Resource $resource) { $this->appendSection($contents, sprintf('Response %s', $response->statusCode)); if (isset($response->contentType)) { $contents .= ' (' . $response->contentType . ')'; } if (!empty($response->headers) || $resource->hasResponseHeaders()) { $this->appendHeaders($contents, array_merge($resource->getResponseHeaders(), $response->headers)); } if (isset($response->attributes)) { $this->appendAttributes($contents, collect($response->attributes), 1); } if (isset($response->body)) { $this->appendBody($contents, $this->prepareBody($response->body, $response->contentType)); } }