mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-09 02:59:27 +03:00
Added exclude_envs to ApiDoc annotation to exclude the documentation from the specified environments
This commit is contained in:
parent
f45cc2565e
commit
dea78901a0
@ -23,6 +23,10 @@ class Configuration implements ConfigurationInterface
|
|||||||
->root('nelmio_api_doc')
|
->root('nelmio_api_doc')
|
||||||
->children()
|
->children()
|
||||||
->scalarNode('name')->defaultValue('API documentation')->end()
|
->scalarNode('name')->defaultValue('API documentation')->end()
|
||||||
|
->arrayNode('exclude_sections')
|
||||||
|
->prototype('scalar')
|
||||||
|
->end()
|
||||||
|
->end()
|
||||||
->arrayNode('motd')
|
->arrayNode('motd')
|
||||||
->addDefaultsIfNotSet()
|
->addDefaultsIfNotSet()
|
||||||
->children()
|
->children()
|
||||||
|
@ -29,6 +29,7 @@ class NelmioApiDocExtension extends Extension
|
|||||||
$config = $processor->processConfiguration($configuration, $configs);
|
$config = $processor->processConfiguration($configuration, $configs);
|
||||||
|
|
||||||
$container->setParameter('nelmio_api_doc.motd.template', $config['motd']['template']);
|
$container->setParameter('nelmio_api_doc.motd.template', $config['motd']['template']);
|
||||||
|
$container->setParameter('nelmio_api_doc.exclude_sections', $config['exclude_sections']);
|
||||||
$container->setParameter('nelmio_api_doc.api_name', $config['name']);
|
$container->setParameter('nelmio_api_doc.api_name', $config['name']);
|
||||||
$container->setParameter('nelmio_api_doc.sandbox.enabled', $config['sandbox']['enabled']);
|
$container->setParameter('nelmio_api_doc.sandbox.enabled', $config['sandbox']['enabled']);
|
||||||
$container->setParameter('nelmio_api_doc.sandbox.endpoint', $config['sandbox']['endpoint']);
|
$container->setParameter('nelmio_api_doc.sandbox.endpoint', $config['sandbox']['endpoint']);
|
||||||
|
@ -100,6 +100,7 @@ class ApiDocExtractor
|
|||||||
{
|
{
|
||||||
$array = array();
|
$array = array();
|
||||||
$resources = array();
|
$resources = array();
|
||||||
|
$excludeSections = $this->container->getParameter('nelmio_api_doc.exclude_sections');
|
||||||
|
|
||||||
foreach ($routes as $route) {
|
foreach ($routes as $route) {
|
||||||
if (!$route instanceof Route) {
|
if (!$route instanceof Route) {
|
||||||
@ -107,7 +108,8 @@ class ApiDocExtractor
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($method = $this->getReflectionMethod($route->getDefault('_controller'))) {
|
if ($method = $this->getReflectionMethod($route->getDefault('_controller'))) {
|
||||||
if ($annotation = $this->reader->getMethodAnnotation($method, self::ANNOTATION_CLASS)) {
|
$annotation = $this->reader->getMethodAnnotation($method, self::ANNOTATION_CLASS);
|
||||||
|
if ($annotation && !in_array($annotation->getSection(), $excludeSections)) {
|
||||||
if ($annotation->isResource()) {
|
if ($annotation->isResource()) {
|
||||||
if ($resource = $annotation->getResource()) {
|
if ($resource = $annotation->getResource()) {
|
||||||
$resources[] = $resource;
|
$resources[] = $resource;
|
||||||
|
@ -355,6 +355,12 @@ You can specify your own API name:
|
|||||||
nelmio_api_doc:
|
nelmio_api_doc:
|
||||||
name: My API
|
name: My API
|
||||||
|
|
||||||
|
You can specify which sections to exclude from the documentation generation:
|
||||||
|
|
||||||
|
# app/config/config.yml
|
||||||
|
nelmio_api_doc:
|
||||||
|
exclude_sections: ["privateapi", "testapi"]
|
||||||
|
|
||||||
The bundle provides a way to register multiple `input` parsers. The first parser
|
The bundle provides a way to register multiple `input` parsers. The first parser
|
||||||
that can handle the specified input is used, so you can configure their
|
that can handle the specified input is used, so you can configure their
|
||||||
priorities via container tags. Here's an example parser service registration:
|
priorities via container tags. Here's an example parser service registration:
|
||||||
@ -396,6 +402,7 @@ Look at the built-in [Handlers](https://github.com/nelmio/NelmioApiDocBundle/tre
|
|||||||
``` yaml
|
``` yaml
|
||||||
nelmio_api_doc:
|
nelmio_api_doc:
|
||||||
name: API documentation
|
name: API documentation
|
||||||
|
exclude_sections: []
|
||||||
motd:
|
motd:
|
||||||
template: NelmioApiDocBundle::Components/motd.html.twig
|
template: NelmioApiDocBundle::Components/motd.html.twig
|
||||||
request_listener:
|
request_listener:
|
||||||
|
@ -261,4 +261,22 @@ class TestController
|
|||||||
public function zReturnSelectedParsersOutputAction()
|
public function zReturnSelectedParsersOutputAction()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ApiDoc(
|
||||||
|
* section="private"
|
||||||
|
* )
|
||||||
|
*/
|
||||||
|
public function privateAction()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ApiDoc(
|
||||||
|
* section="exclusive"
|
||||||
|
* )
|
||||||
|
*/
|
||||||
|
public function exclusiveAction()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,3 +51,6 @@ jms_serializer:
|
|||||||
# class: My\FooBundle\Entity\User
|
# class: My\FooBundle\Entity\User
|
||||||
# expected path: @MyFooBundle/Resources/config/serializer/Entity.User.(yml|xml|php)
|
# expected path: @MyFooBundle/Resources/config/serializer/Entity.User.(yml|xml|php)
|
||||||
auto_detection: true
|
auto_detection: true
|
||||||
|
|
||||||
|
nelmio_api_doc:
|
||||||
|
exclude_sections: ["private", "exclusive"]
|
||||||
|
@ -141,3 +141,11 @@ test_route_19:
|
|||||||
test_route_20:
|
test_route_20:
|
||||||
pattern: /z-return-selected-parsers-input
|
pattern: /z-return-selected-parsers-input
|
||||||
defaults: { _controller: NelmioApiDocTestBundle:Test:zReturnSelectedParsersInput }
|
defaults: { _controller: NelmioApiDocTestBundle:Test:zReturnSelectedParsersInput }
|
||||||
|
|
||||||
|
test_route_private:
|
||||||
|
pattern: /private
|
||||||
|
defaults: { _controller: NelmioApiDocTestBundle:Test:private }
|
||||||
|
|
||||||
|
test_route_exclusive:
|
||||||
|
pattern: /exclusive
|
||||||
|
defaults: { _controller: NelmioApiDocTestBundle:Test:exclusive }
|
Loading…
x
Reference in New Issue
Block a user