<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:24:27 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-2948] SPIKE: Vert.x OpenAPI support PoC</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-2948</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://vertx.io/docs/vertx-web-openapi/java/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://vertx.io/docs/vertx-web-openapi/java/&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="81868">FOLIO-2948</key>
            <summary>SPIKE: Vert.x OpenAPI support PoC</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <priority id="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Done</resolution>
                                                        <assignee accountid="5f8314dfbdef80006f6f572d">Adam Dickmeiss</assignee>
                                                                <reporter accountid="5f8314dfbdef80006f6f572d">Adam Dickmeiss</reporter>
                                    <labels>
                            <label>R2</label>
                    </labels>
                <created>Wed, 6 Jan 2021 16:07:05 +0000</created>
                <updated>Mon, 26 Apr 2021 12:34:24 +0000</updated>
                            <resolved>Mon, 26 Apr 2021 12:34:02 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                <comments>
                                                            <comment id="198680" author="61cd0ca0bce5e00069e98be7" created="Thu, 7 Jan 2021 02:11:10 +0000"  >&lt;p&gt;If it helps, then there is a new &quot;validation&quot; facility for FOLIO CI. It does both OpenAPI OAS and RAML.&lt;br/&gt;
&lt;a href=&quot;https://dev.folio.org/guides/api-lint/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://dev.folio.org/guides/api-lint/&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="198681" author="61cd0ca0bce5e00069e98be7" created="Thu, 7 Jan 2021 02:11:29 +0000"  >&lt;p&gt;Regarding the linked ticket 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;FOLIO-2793&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-2793&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Investigate AMF &amp;quot;translate&amp;quot; facility to translate RAML/Schema to OpenAPI OAS&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            FOLIO-2793
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-complete jira-macro-single-issue-export-pdf&quot;&gt;Open&lt;/span&gt;
            &lt;/span&gt;
 for &quot;translation&quot;. At this stage i have only done basic investigation. Not yet sure if those tools are ready.&lt;/p&gt;</comment>
                                                            <comment id="198683" author="5f8314dfbdef80006f6f572d" created="Fri, 16 Apr 2021 13:36:50 +0000"  >&lt;p&gt;PoC here: &lt;a href=&quot;https://github.com/folio-org/mod-eusage-reports&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/mod-eusage-reports&lt;/a&gt;&lt;br/&gt;
&#160;&lt;/p&gt;

&lt;p&gt;Reusing the work of this module.. But it&apos;s a PoC for OpenAPI with that Vert.x library.&lt;br/&gt;
&#160;&lt;br/&gt;
I took Tenant API v2 and converted it - manually - to OpenAPI. &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/folio-org/mod-eusage-reports/tree/master/src/main/resources/openapi&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/mod-eusage-reports/tree/master/src/main/resources/openapi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What surprised me the most is that OpenAPI does not support JSON schemas - at least not in the form we have it in RAML. So they&apos;d have to be tweaked somehow.&#160; I had hoped we could reuse them as they were .. But there&apos;s just no free ride. One problem goes away and new problems arise.&#160;&lt;br/&gt;
&#160;&lt;br/&gt;
Properties like id and $schema are not recognized.&#160;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://swagger.io/docs/specification/data-models/keywords/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://swagger.io/docs/specification/data-models/keywords/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that the problem with JSON schemas is fixed in 3.1 of OpenAPI. But most tools still only support 3.0!&lt;/p&gt;

&lt;p&gt;API wise..&#160;&lt;/p&gt;

&lt;p&gt;Using the Vert.x OpenAPI API for RMB would be a quite different approach. For this reason, I&apos;ll also look at&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://openapi-generator.tech/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://openapi-generator.tech/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;br/&gt;
This is also used in folio-spring-base.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                                                            <comment id="198685" author="5f8314dfbdef80006f6f572d" created="Mon, 26 Apr 2021 12:34:24 +0000"  >&lt;p&gt;PoC completed with two API generators.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="79598">FOLIO-2793</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10144"><![CDATA[Core: Platform]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzx3o9:hzzbu</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1425">CP: sprint 105</customfieldvalue>
    <customfieldvalue id="1427">CP: sprint 112</customfieldvalue>
    <customfieldvalue id="1861">CP: sprint 111</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10044" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 7 Jan 2021 02:11:10 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>