135 Commits

Author SHA1 Message Date
Jonathan Chan
d4e12d66f2 Add default values support for form types
Adding displaying default value in Markdown

updating tests to work with new default value
2014-06-26 11:20:49 -04:00
Even André Fiskvik
b4e874e2dc Add support for nullable option in RequestParam 2014-06-25 10:19:30 +02:00
Bez Hermoso
14d1021c8b Unified data types [actualType and subType]
This is the result of https://github.com/nelmio/NelmioApiDocBundle/issues/410.

This PR aims to provide a uniform way of declaring data-types of parameters for
parsers and handlers to follow. In turn, this would allow formatters to
determine data-types in a cleaner and less volatile manner. (See use-case that
can be improved with this PR:
https://github.com/nelmio/NelmioApiDocBundle/blob/master/Formatter/AbstractFormatter.php#L103)

This is possible by the addition two properties to each property item in
`response`, and `parameters` fields in each API endpoint produced by the
`ApiDocExtractor`:

* `actualType` Contains a value from one of the `DataTypes` class constants.

* `subType` Can contain either `null`, or any other `DataTypes` class constant.
This is relevant when the `actualType` is a `DataTypes::COLLECTION`, wherein
`subType` would specify the type of the collection items. It is also relevant
when `actualType` is a `DataTypes::MODEL`, wherein `subType` would contain an
identifier of the model (the FQCN or anything the parser would wish to specify)

Examples:

```php

array(
    'id' => array(
        'dataType' => 'integer',
        'actualType' => DataTypes::INTEGER,
        'subType' => null,
    ),
    'profile' => array(
        'dataType' => 'object (Profile)',
        'actualType' => DataTypes::MODEL,
        'subType' => 'Foo\Entity\Profile',
        'children' => array(
            'name' => array(
                'dataType' => 'string',
                'actualType' => DataTypes::STRING,
                'subType' => null,
             ),
            'birthDate' => array(
                'dataType' => 'date',
                'actualType' => DataTypes::DATE,
                'subType' => null,
            ),
        )
    ),
    'languages' => array(
        'dataType' => 'array of strings',
        'actualType' => DataTypes::COLLECTION,
        'subType' => DataTypes::STRING,
    ),
    'roles' => array(
        'dataType' => 'array of choices',
        'actualType' => DataTypes::COLLECTION,
        'subType' => DataTypes::ENUM,
    ),
    'groups' => array(
        'dataType' => 'array of objects (Group)',
        'actualType' => DataTypes::COLLECTION,
        'subType' => 'Foo\Entity\Group',
    ),
    'profileRevisions' => array(
         'dataType' => 'array of objects (Profile)',
         'actualType' => DataTypes::COLLECTION,
         'subType' => 'Foo\Entity\Profile',
    ),
    'address' => array(
        'dataType' => 'object (a_type_a_custom_JMS_serializer_handler_handles)',
        'actualType' => DataTypes::MODEL,
        'subType' => 'a_type_a_custom_JMS_serializer_handler_handles',
    ),
);
```

When a formatter omits the `dataType` property or leaves it blank, it is
inferred within `ApiDocExtractor` before everything is passed to formatters.
2014-06-25 09:05:48 +02:00
William DURAND
b48650a9e0 Fix CS 2014-06-25 08:52:01 +02:00
Christophe Coevoet
8d3fd662bf Fixed the retrieval of the validation MetadataFactory
The service is private so getting it from the container get() method is invalid and it does not work anymore in Symfony 2.5 because the service gets inlined.
2014-06-18 09:38:16 +02:00
Sandro Meier
dfd094371d Implement Tags for functions. 2014-05-27 13:33:50 +02:00
Loick Piera
d0149c65ab fix #357 2014-05-16 22:04:24 +02:00
William DURAND
fa92011126 fix cs 2014-05-16 11:33:58 +02:00
Max Romanovsky
b4fa6013cd Form Parser improvements for date, datetime & choice form types (format & types) 2014-04-04 13:52:12 +03:00
Julius Beckmann
56f8c43849 Added PHP 5.6 and HHVM to Travis.
Modified RequestListenerTest so it does not use the Crawler, that currently does not work with HHVM.
2014-03-03 18:44:37 +01:00
jdeveloper
dea78901a0 Added exclude_envs to ApiDoc annotation to exclude the documentation from the specified environments 2014-01-20 13:24:41 +01:00
Simon Schick
912178dc88 Hide “_scheme” in the list of requirements per URL
+ disable sandbox if the scheme of the URL doesn’t match the scheme, the
documentation is opened in
2013-12-28 18:52:32 +01:00
William DURAND
627130637d Merge PR #288 from piotrantosik/feature/selectparsers 2013-12-28 18:42:51 +01:00
Piotr Antosik
3fdbfbed1c select used parsers 2013-12-28 18:41:59 +01:00
William DURAND
af7c04cdfc Merge PR #298 from 'skler/extended_class 2013-12-28 18:28:07 +01:00
William DURAND
dc9c706b51 [Test] Extended Class test case 2013-12-28 18:27:48 +01:00
Julius Beckmann
0845377300 Use only JMS/GroupExclusion if groups are there
When no groups are given in the ApiDoc, there should be no GroupExclusion and the Entity should be parsed wihtout exclusions.

Otherwise only the "Default" group of the Entity would be parsed, which may not be used.

The ApiDoc should not enforce the Entity to be grouped with "Default", to generate a "full-view" of it.
2013-12-20 15:08:26 +01:00
Samuel ROZE
1112cca784 Add support of All constraint 2013-11-18 10:24:56 +01:00
Samuel ROZE
184a364fa4 Merge output parameters 2013-11-16 17:29:23 +01:00
William DURAND
e59ae1e1ef Fix tests for Symfony2 2.1 2013-11-14 14:20:51 +01:00
William DURAND
3ce5dca429 Fix a failing test 2013-11-14 13:26:10 +01:00
William DURAND
87328e27f5 Merge pull request #206 from dothiv/master
Show authorized roles in key icon tooltip
2013-11-14 11:17:06 +01:00
Martin Westergaard Lassen
83315fcc80 Set format according to Date, DateTime and Time annotations 2013-11-14 11:05:05 +01:00
William Durand
29965ec7bb Merge pull request #264 from driebit/embedded-forms
Add support for embedded forms
2013-11-14 01:42:43 -08:00
William DURAND
d7fd929379 Fix CS 2013-11-14 10:33:57 +01:00
Jordi Boggiano
769b435cf3 Test suite cleanups 2013-10-29 14:41:13 +01:00
David de Boer
fbe9488963 Add support for embedded forms 2013-10-23 15:45:30 +02:00
Konrad Podgórski
74d30d9e39 Option to set requirements and parameters directly from ApiDoc annotation
Sometimes required parameters are not used through routing but still they are mandatory. I wanted to have API with

resource.json?foo=bar&something=else

format, that was possible through QueryParam annotation or requirements in routing BUT!

There was no way to set dataType or description

This PR solves problem for me.

Side note: if you want to declare e.g. _format requirement through Annotation or any other param that is used in url ({foo} format) then it won't work. Because Bundle still overrides requirements and parameters after the constuctor in ApiDoc is called. This might be solved in separate PR by adding check if given requirements or parameters was already defined.
2013-10-15 15:28:54 +02:00
Florent DUBOST
8f6ac59c97 Adding test for named resource 2013-10-11 16:18:02 +02:00
Adrien Brault
083ae3aef1 Can now specifiy form name
If you create you forms using FormFactoryInterface::createNamed, then you should now be able to tell the ApiDocBundle the correct form prefix.
2013-10-08 12:09:46 -07:00
William Durand
96b40b8a8c Merge pull request #210 from jhallbachner/validation2
Added Support for Validation Component (refactored)
2013-08-13 03:28:09 -07:00
Jordi Boggiano
2a87244869 Fix build 2013-07-05 00:27:42 +02:00
Josh Hall-Bachner
23f64b84f6 Fixed multi-level validation nesting.
Removed "class" parameters from results after processed.

Updated README.
2013-06-30 23:46:43 -07:00
Josh Hall-Bachner
0913157399 Added the initial structure for a Symfony Validation handler that is injected into the parsers. 2013-06-30 23:46:41 -07:00
Nils Wisiol
b2a7dde6f4 improved unit tests by using more specific asserts 2013-06-24 15:57:54 +02:00
Nils Wisiol
f764773c89 authenticationRoles can be set to appear in the tooltip of the key icon for API calls that require authentication. 2013-06-24 14:27:22 +02:00
William Durand
0eb7ec27ec Merge pull request #152 from adriensamson/issue-147
Fix Illegal offset warning in FormTypeParser (closes #147)
2013-06-18 06:44:06 -07:00
Pierre-Yves LEBECQ
13efea8975 Added support for the jms version annotations in formatters 2013-05-12 14:54:01 +02:00
fieg
06271f824a added support for JMS Serializer GroupsExclusionStrategy 2013-05-12 14:29:36 +02:00
Jordi Boggiano
00bcdc927e Remove scope hack since 2.3 has been fixed 2013-05-10 10:34:21 +02:00
William Durand
3e8b896d00 Merge pull request #191 from iambrosi/patch-1
Added check for deprecated setting
2013-05-10 01:30:50 -07:00
Ismael Ambrosi
0c416c1788 Fixed tests for deprecated indicator 2013-05-09 23:59:03 -03:00
marapper
a97c65da70 Make parameters description conform to others 2013-05-07 23:11:32 +04:00
marapper
80b5162c83 Add @QueryParam default support 2013-05-06 10:04:13 +02:00
William Durand
5567f74692 Merge pull request #179 from lightglitch/fix-178
Fix parameter name boundary in regex
2013-05-06 01:00:51 -07:00
William Durand
1780b09387 Merge pull request #185 from blaugueux/patch-form
Handle the prefix form when parseForm.
2013-05-06 00:57:43 -07:00
Jordi Boggiano
255d42830d Allow sf2.3, fix scope issue 2013-05-03 16:26:16 +02:00
Mario Franco
e6b6987141 Fix formatter tests 2013-05-03 14:49:17 +01:00
Mario Franco
1dc3380e8e Refactor tests 2013-05-03 14:37:52 +01:00
Benjamin Laugueux
6859384983 Handle the prefix form when parseForm.
Cf. #166 and thanks to @madesst.
2013-04-30 16:19:00 +02:00