[ 
https://issues.apache.org/jira/browse/AMBARI-20436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jaimin Jetly updated AMBARI-20436:
----------------------------------
    Description: 
As part of this task, following changes are done:
# Users, Groups and Views API are integrated with swagger and exposed from 
ambari rest api explorer ui (swagger ui) on a deployed cluster at path: 
http://c6404.ambari.apache.org:8080/api-docs
# swagger-maven-plugin is used to generate swagger.json file on compile time. 
This file is published in web resources directory. Note that this file is 
generated build time and will be available on deployed ambari-server host at 
web resources location but it is not yet decided to be committed and maintained 
in Ambari source code
# swagger2markup-maven-plugin is used to generate asciidoc from swagger.json 
file (that can be shown as markdown in github). More information about this 
format an be found at http://asciidoc.org/ and http://asciidoctor.org/. This 
generates files in docs/api/asciidoc/** location at build time. This directory 
is currently intended to be committed and maintained in ambari source code
# swagger-ui (version: v2.1.1-M2) compiled code with the different css skin 
(adopted from [link|https://github.com/jensoleg/swagger-ui]) is committed to 
ambari-web/api-docs directory with certain modification to make it work with 
ambari api. Further ui polishing will be done in subsequent tasks. Also there 
is a strong possibility to maintain the fork code of swagger-ui and compile 
(minify and concanate) it during ambari compile time rather than directly using 
swagger-ui dist files. Doing so will help when customization done over 
swagger-ui will increase
# swagger-annotation expects application to define schema of request body and 
response for each endpoint to be encapsulated in a class. While Ambari follows 
this pattern for some of the endpoint, there are many others which does not do 
so. For The ones which do not does so, new request and response classes were 
defined. Going forward at the completion of this epic, either each resource 
type or each resource provider should be coupled with a resource response class 
and a resource request class. As part of this patch, each resourceprovider 
worked upon introduces a new method "getResponse". At completion of this epic 
ResourceProvider interface should also declare methods like "getResponse" and 
"getRequest" that returns response schema and request schema instances for the 
resource API endpoints
#  Currently it seems that swagger has a limitation in supporting  "subresource 
locator methods". This issue is been reported to swagger community and is being 
tracked at [link|https://github.com/swagger-api/swagger-core/issues/2136] . As 
a result of which currently as a temporary workaround, all subresources are 
converted to root resources. Also all root resources on similar path are moved 
under same subpackages.

  was:
As part of this task, following changes are done:
# swagger-maven-plugin is used to generate swagger.json file on compile time. 
This file is published in web resources directory. Note that this file is 
generated build time and will be available on deployed ambari-server host at 
web resources location but it is not yet decided to be committed and maintained 
in Ambari source code
# swagger2markup-maven-plugin is used to generate asciidoc from swagger.json 
file (that can be shown as markdown in github). More information about this 
format an be found at http://asciidoc.org/ and http://asciidoctor.org/. This 
generates files in docs/api/asciidoc/** location at build time. This directory 
is currently intended to be committed and maintained in ambari source code
# swagger-ui (version: v2.1.1-M2) compiled code with the different css skin 
(adopted from [link|https://github.com/jensoleg/swagger-ui]) is committed to 
ambari-web/api-docs directory with certain modification to make it work with 
ambari api. Further ui polishing will be done in subsequent tasks. Also there 
is a strong possibility to maintain the fork code of swagger-ui and compile 
(minify and concanate) it during ambari compile time rather than directly using 
swagger-ui dist files. Doing so will help when customization done over 
swagger-ui will increase
# swagger-annotation expects application to define schema of request body and 
response for each endpoint to be encapsulated in a class. While Ambari follows 
this pattern for some of the endpoint, there are many others which does not do 
so. For The ones which do not does so, new request and response classes were 
defined. Going forward at the completion of this epic, either each resource 
type or each resource provider should be coupled with a resource response class 
and a resource request class. As part of this patch, each resourceprovider 
worked upon introduces a new method "getResponse". At completion of this epic 
ResourceProvider interface should also declare methods like "getResponse" and 
"getRequest" that returns response schema and request schema instances for the 
resource API endpoints
#  Currently it seems that swagger has a limitation in supporting  "subresource 
locator methods". This issue is been reported to swagger community and is being 
tracked at [link|https://github.com/swagger-api/swagger-core/issues/2136] . As 
a result of which currently as a temporary workaround, all subresources are 
converted to root resources. Also all root resources on similar path are moved 
under same subpackages.


> Create a prototype of ambari-server swagger integration
> -------------------------------------------------------
>
>                 Key: AMBARI-20436
>                 URL: https://issues.apache.org/jira/browse/AMBARI-20436
>             Project: Ambari
>          Issue Type: Task
>          Components: ambari-server, ambari-web
>    Affects Versions: 3.0.0
>            Reporter: Jaimin Jetly
>            Assignee: Jaimin Jetly
>             Fix For: 3.0.0
>
>
> As part of this task, following changes are done:
> # Users, Groups and Views API are integrated with swagger and exposed from 
> ambari rest api explorer ui (swagger ui) on a deployed cluster at path: 
> http://c6404.ambari.apache.org:8080/api-docs
> # swagger-maven-plugin is used to generate swagger.json file on compile time. 
> This file is published in web resources directory. Note that this file is 
> generated build time and will be available on deployed ambari-server host at 
> web resources location but it is not yet decided to be committed and 
> maintained in Ambari source code
> # swagger2markup-maven-plugin is used to generate asciidoc from swagger.json 
> file (that can be shown as markdown in github). More information about this 
> format an be found at http://asciidoc.org/ and http://asciidoctor.org/. This 
> generates files in docs/api/asciidoc/** location at build time. This 
> directory is currently intended to be committed and maintained in ambari 
> source code
> # swagger-ui (version: v2.1.1-M2) compiled code with the different css skin 
> (adopted from [link|https://github.com/jensoleg/swagger-ui]) is committed to 
> ambari-web/api-docs directory with certain modification to make it work with 
> ambari api. Further ui polishing will be done in subsequent tasks. Also there 
> is a strong possibility to maintain the fork code of swagger-ui and compile 
> (minify and concanate) it during ambari compile time rather than directly 
> using swagger-ui dist files. Doing so will help when customization done over 
> swagger-ui will increase
> # swagger-annotation expects application to define schema of request body and 
> response for each endpoint to be encapsulated in a class. While Ambari 
> follows this pattern for some of the endpoint, there are many others which 
> does not do so. For The ones which do not does so, new request and response 
> classes were defined. Going forward at the completion of this epic, either 
> each resource type or each resource provider should be coupled with a 
> resource response class and a resource request class. As part of this patch, 
> each resourceprovider worked upon introduces a new method "getResponse". At 
> completion of this epic ResourceProvider interface should also declare 
> methods like "getResponse" and "getRequest" that returns response schema and 
> request schema instances for the resource API endpoints
> #  Currently it seems that swagger has a limitation in supporting  
> "subresource locator methods". This issue is been reported to swagger 
> community and is being tracked at 
> [link|https://github.com/swagger-api/swagger-core/issues/2136] . As a result 
> of which currently as a temporary workaround, all subresources are converted 
> to root resources. Also all root resources on similar path are moved under 
> same subpackages.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to