Ok, so I will wait a license key from you.
2015-04-07 14:55 GMT+03:00 Matthias Wessendorf <matzew(a)apache.org>:
On Tue, Apr 7, 2015 at 1:42 PM, Idel Pivnitskiy <idel.pivnitskiy(a)gmail.com
> wrote:
> IMO, custom annotations force you to duplicate code and documentation.
> Take a look at a more detailed example:
>
> @POST
> @Path("/{petId}")
> @Consumes({MediaType.APPLICATION_FORM_URLENCODED})
> @ApiOperation(value = "Updates a pet in the store with form data",
> consumes = MediaType.APPLICATION_FORM_URLENCODED)
> @ApiResponses(value = {
> @ApiResponse(code = 405, message = "Invalid input")})
> public Response updatePetWithForm (
> @ApiParam(value = "ID of pet that needs to be updated", required =
true)@PathParam("petId") String petId,
> @ApiParam(value = "Updated name of the pet", required =
false)@FormParam("name") String name,
> @ApiParam(value = "Updated status of the pet", required =
false)@FormParam("status") String status) {
> System.out.println(name);
> System.out.println(status);
> return Response.ok().entity(new com.wordnik.swagger.sample.model.ApiResponse(200,
"SUCCESS")).build();
> }
>
>
> It is much more simple with MireDot (also because javadoc could be
> generated automatically by IDE):
>
> /**
> * Updates a pet in the store with form data.
> *
> * @param petId ID of pet that needs to be updated
> * @param name Updated name of the pet
> * @param status Updated status of the pet
> */
> @POST
> @Path("/{petId}")
> @Consumes({MediaType.APPLICATION_FORM_URLENCODED})
> public Response updatePetWithForm (@PathParam("petId") String petId,
> @FormParam("name") String name,
> @FormParam("status") String status)
{
> System.out.println(name);
> System.out.println(status);
> return Response.ok().entity(new com.wordnik.swagger.sample.model.ApiResponse(200,
"SUCCESS")).build();
> }
>
> Really, I don't know why Swagger is so popular :)
>
That's quite a difference, and less verbose and less of duplication (DRY).
So I'd say, let's try Miredot :-)
Thanks for the valuable info, Idel!
-Matthias
>
> 2015-04-07 14:11 GMT+03:00 Matthias Wessendorf <matzew(a)apache.org>:
>
>>
>>
>> On Tue, Apr 7, 2015 at 12:56 PM, Idel Pivnitskiy <
>> idel.pivnitskiy(a)gmail.com> wrote:
>>
>>> Yes, Swagger can generate doc on the fly, but Swagger use its own
>>> annotations instead of parse JAX-RS annotations and javadoc, like MireDot.
>>>
>>
>> Ok, I think I have not a huge concern against custom annotations,
>> especially due to the wide adoption of Swagger.
>> I guess it's just a very tiny JAR, that contains the annotations, right?
>>
>> (+ the build time tool dependency for processing)
>>
>>
>>> What about licence: Apache Tika, for example, uses pro version of
>>> MireDot
>>>
>>>
>>>
https://github.com/apache/tika/blob/5fbc56cca94b9da0a914e82dd466abb139f9e...
>>>
>>
>> Thanks for the example, that's helpful
>>
>>
>>>
>>>
>>> 2015-04-07 13:48 GMT+03:00 Matthias Wessendorf <matzew(a)apache.org>:
>>>
>>>> Swagger allows doc on the source as well, right ? Just wondering.
>>>>
>>>> REgarding license, I need to double check on that before...
>>>>
>>>> On Tue, Apr 7, 2015 at 11:57 AM, Idel Pivnitskiy <
>>>> idel.pivnitskiy(a)gmail.com> wrote:
>>>>
>>>>> Matthias,
>>>>>
>>>>> Sure, I will work on it.
>>>>> But I think that it would be better if you request a license [1] on
>>>>> your email and forward it to me.
>>>>> It won't be a problem to use a free version, but pro version has
a
>>>>> very cool features, like:
>>>>>
>>>>> - Display javadoc comments for the fields of json payloads and
>>>>> enums
>>>>> - JSON field documentation
>>>>> - Type replacement (custom serialisation, JSON types)
>>>>>
>>>>> Please, request a li
>>>>>
>>>>> [1]
http://miredot.com/price/
>>>>>
>>>>> 2015-04-07 12:44 GMT+03:00 Matthias Wessendorf
<matzew(a)apache.org>:
>>>>>
>>>>>> Idel,
>>>>>>
>>>>>> would you mind to create a branch for us, so we can investigate
the
>>>>>> MireDot solution? also the build should be working w/ JDK8.
>>>>>>
>>>>>> ATM we use jax-doclet ([1]) which does not work w/ JDK 8 - but
it
>>>>>> does not really use any fancy annotations (e.g. see [2]) -
that's why we
>>>>>> picked it.
>>>>>>
>>>>>> Thanks!
>>>>>> Matthias
>>>>>>
>>>>>> [1]
http://fromage.github.io/jax-doclets/docs/0.10.0/html/
>>>>>> [2]
>>>>>>
https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/jaxrs...
>>>>>>
>>>>>> On Tue, Apr 7, 2015 at 9:54 AM, Lukáš Fryč
<lukas.fryc(a)gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I agree with Idel that DRY approach in Miredot's case
seems more
>>>>>>> appealing.
>>>>>>>
>>>>>>> They offer basic docs generation in Free version, but also
Pro
>>>>>>> version for open-source projects under conditions that
Aerogear meets [1].
>>>>>>>
>>>>>>> ~ Lukas
>>>>>>>
>>>>>>> [1]
http://www.miredot.com/price/
>>>>>>>
>>>>>>> ne 5. 4. 2015 v 20:00 odesílatel Idel Pivnitskiy <
>>>>>>> idel.pivnitskiy(a)gmail.com> napsal:
>>>>>>>
>>>>>>> For JAX-RS I prefer use MireDot as a REST API doc generator
>>>>>>>>
http://www.miredot.com/
>>>>>>>>
>>>>>>>> With MireDot you do not need to use additional
annotations, like
>>>>>>>> @Api:
>>>>>>>>
>>>>>>>> @Path("/pet")
>>>>>>>> @Api(value = "/pet", description =
"Operations about pets")
>>>>>>>>
>>>>>>>>
>>>>>>>> It will parse your JAX-RS annotation and pure javadoc:
>>>>>>>>
>>>>>>>> /**
>>>>>>>> * Operations about pets
>>>>>>>> */
>>>>>>>> @Path("/pet")
>>>>>>>>
>>>>>>>> and generate beautiful and user friendly documentation,
like this:
>>>>>>>>
http://www.miredot.com/exampledocs/
>>>>>>>> Swagger example:
http://petstore.swagger.io/
>>>>>>>>
>>>>>>>> And MireDot is free for open source projects!
>>>>>>>>
>>>>>>>> Think about this alternative for Swagger. I'm able to
prepare Pull
>>>>>>>> Request for UPS next week.
>>>>>>>>
>>>>>>>>
>>>>>>>> 2015-04-04 9:43 GMT+03:00 Matthias Wessendorf
<matzew(a)apache.org>:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Apr 3, 2015 at 10:27 PM, Heiko W.Rupp
<hrupp(a)redhat.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> On 3 Apr 2015, at 18:53, Andrea Vibelli wrote:
>>>>>>>>>>
>>>>>>>>>> > we are using it in Project Newcastle with
annotations on the
>>>>>>>>>> > endpoints, and
>>>>>>>>>> > it's really handy.
>>>>>>>>>>
>>>>>>>>>> All the JBoss ON 3.2+ and RHQ REST-docs are
generated from
>>>>>>>>>> JAX-RS +
>>>>>>>>>> Swagger annotations.
>>>>>>>>>> In Hawkular we are basically doing the same, but
with a different
>>>>>>>>>> annotation processor.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> +1000
>>>>>>>>>
>>>>>>>>> we are, atm, doing similar:
>>>>>>>>> source
>>>>>>>>>
https://github.com/aerogear/aerogear-unifiedpush-server/
>>>>>>>>> blob/master/jaxrs/src/main/java/org/jboss/aerogear/
>>>>>>>>>
unifiedpush/rest/sender/PushNotificationSenderEndpoint
>>>>>>>>> .java#L99-L102
>>>>>>>>> result:
>>>>>>>>>
https://aerogear.org/docs/specs/aerogear-unifiedpush-
>>>>>>>>> rest/sender/index.html#POST
>>>>>>>>>
>>>>>>>>> but the jaxrs doclet does not work w/ JDK8 -
something has to
>>>>>>>>> change here ;-)
>>>>>>>>> So, I am all for using Swagger annotations on the
code to
>>>>>>>>> generate the HTML docs :-)
>>>>>>>>>
>>>>>>>>> Greetings,
>>>>>>>>> Matthias
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I personally think the best is really to have the
annotations in
>>>>>>>>>> the
>>>>>>>>>> source and not trying
>>>>>>>>>> to update a separate .yml file, as the latter
usually is much
>>>>>>>>>> easier
>>>>>>>>>> forgotten.
>>>>>>>>>> _______________________________________________
>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Matthias Wessendorf
>>>>>>>>>
>>>>>>>>> blog:
http://matthiaswessendorf.wordpress.com/
>>>>>>>>> sessions:
http://www.slideshare.net/mwessendorf
>>>>>>>>> twitter:
http://twitter.com/mwessendorf
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> aerogear-dev mailing list
>>>>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Best regards,
>>>>>>>> Idel Pivnitskiy
>>>>>>>> E-mail: Idel.Pivnitskiy(a)gmail.com
>>>>>>>> Twitter: @idelpivnitskiy
<
https://twitter.com/idelpivnitskiy>
>>>>>>>> GitHub: @idelpivnitskiy
<
https://github.com/idelpivnitskiy>
>>>>>>>> _______________________________________________
>>>>>>>> aerogear-dev mailing list
>>>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> aerogear-dev mailing list
>>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Matthias Wessendorf
>>>>>>
>>>>>> blog:
http://matthiaswessendorf.wordpress.com/
>>>>>> sessions:
http://www.slideshare.net/mwessendorf
>>>>>> twitter:
http://twitter.com/mwessendorf
>>>>>>
>>>>>> _______________________________________________
>>>>>> aerogear-dev mailing list
>>>>>> aerogear-dev(a)lists.jboss.org
>>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Best regards,
>>>>> Idel Pivnitskiy
>>>>> E-mail: Idel.Pivnitskiy(a)gmail.com
>>>>> Twitter: @idelpivnitskiy <
https://twitter.com/idelpivnitskiy>
>>>>> GitHub: @idelpivnitskiy <
https://github.com/idelpivnitskiy>
>>>>>
>>>>> _______________________________________________
>>>>> aerogear-dev mailing list
>>>>> aerogear-dev(a)lists.jboss.org
>>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Matthias Wessendorf
>>>>
>>>> blog:
http://matthiaswessendorf.wordpress.com/
>>>> sessions:
http://www.slideshare.net/mwessendorf
>>>> twitter:
http://twitter.com/mwessendorf
>>>>
>>>> _______________________________________________
>>>> aerogear-dev mailing list
>>>> aerogear-dev(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> aerogear-dev mailing list
>>> aerogear-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>
>>
>>
>>
>> --
>> Matthias Wessendorf
>>
>> blog:
http://matthiaswessendorf.wordpress.com/
>> sessions:
http://www.slideshare.net/mwessendorf
>> twitter:
http://twitter.com/mwessendorf
>>
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>
>
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
--
Matthias Wessendorf
blog:
http://matthiaswessendorf.wordpress.com/
sessions:
http://www.slideshare.net/mwessendorf
twitter:
http://twitter.com/mwessendorf
_______________________________________________
aerogear-dev mailing list
aerogear-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/aerogear-dev
--
Best regards,
Idel Pivnitskiy
E-mail: Idel.Pivnitskiy(a)gmail.com
Twitter: @idelpivnitskiy <