Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-7240 Scaling HDFS
  3. HDFS-12690

Ozone: generate swagger descriptor for the Ozone REST Api

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • HDFS-7240
    • HDFS-7240
    • ozone
    • None
    • Reviewed

    Description

      This patch generates ozone.swagger.json descriptor during compilation time and adds it to the static/ web folder (available both from all web ui).

      Note: I tested multiple method to generate swagger file: runtime and compilation time. Runtime needs more additional dependencies and multiple workaround as we have no ServletContext and ServletConfig in the netty based adapter (but it's possible to add a stub one). I prefer the compilation time generation because it more simplified and it also could be used to generate additional documentation.

      This patch contains only the basic @Api/@ApiMethod annotations the parameters not yet annotated. Followup tasks:

      • We can check how can we generate parameter level description from the javadoc. It is possible with custom docket + custom swagger reader, but maybe doesn't worth it.
      • We can add a swagger ui (there are many implementations). It's a licence nightmare as most of the ui contains unlimited number of npm dependency with different (but mostly Apache + MIT) artifacts. I will suggest to add a swagger ui without the javascript and load it from cdn. It will work only with active internet connection but without licencing issue.
      • Long term with this plugin we can also generate the content of OzoneRest.md (after a fine tuning the swagger annotations)

      Attachments

        1. HDFS-12690-HDFS-7240.001.patch
          15 kB
          Marton Elek

        Activity

          People

            elek Marton Elek
            elek Marton Elek
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: