Redmine: Issueshttps://redmine.openatlas.eu/https://redmine.openatlas.eu/favicon.ico?17112826112022-04-19T16:19:02ZRedmine
Redmine OpenAtlas - Question #1696 (Closed): API: Bug in generated client codehttps://redmine.openatlas.eu/issues/16962022-04-19T16:19:02ZEugen Hotwagnerehotwagner@gmail.com
<p>I generated a fsharp client using two different tools and have noticed a few empty results for certain methods. Fe:</p>
<p>type GetApi03Classes =</p>
<pre><code>| OK of payload: list&lt;ClassMappingModel&gt;
| NotFound</code></pre>
<p>is ok since it has a payload but:</p>
<p>type GetApi03CidocClassByCidocClass =</p>
<pre><code>| OK
| NotFound</code></pre>
<p>does not. I assumed that this was due to some bug in the fsharp tools but looking into other generated clients on swaggerhub (csharp, java, scala) have the same problem (i think). There is an online tool to test swagger apis here: <a class="external" href="https://apitools.dev/swagger-parser/online/">https://apitools.dev/swagger-parser/online/</a><br />that results for the OA api:</p>
<p>@This API is valid, but it cannot be shown because it contains circular references</p>
<p>TypeError: Converting circular structure to JSON<br /> --> starting at object with constructor 'Object'
| property 'properties' -> object with constructor 'Object'
| property 'children' <del>> object with constructor 'Object'<br /> --</del> property 'items' closes the circle<br /> at JSON.stringify (<anonymous>)<br /> at toText (<a class="external" href="https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:226677">https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:226677</a>)<br /> at Function.editors.addResult (<a class="external" href="https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:227813">https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:227813</a>)<br /> at Function.editors.showResult (<a class="external" href="https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:227094">https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:227094</a>)<br /> at <a class="external" href="https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:231618">https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:231618</a><br /> at Array.forEach (<anonymous>)<br /> at <a class="external" href="https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:231598">https://apitools.dev/swagger-parser/online/js/bundle.min.js:17:231598</a>@</p>
<p>which is a likely reason that many code generation tools fail.</p> OpenAtlas - Bug #1570 (Closed): API: Wrong type signature in OpenApihttps://redmine.openatlas.eu/issues/15702021-09-09T16:19:01ZEugen Hotwagnerehotwagner@gmail.com
<p>Methods returning arrays are typed as single object and not as an array of that object. For example:</p>
<pre><code>"summary": "Class Mapping endpoint\r",<br /> "description": "Provides a list of all available system classes, their CIDOC CRM mapping, which view they belong, which icon is used and the englisch name",<br /> "responses": {<br /> "200": {<br /> "description": "List of all available system classes",<br /> "content": {<br /> "application/ld+json": {<br /><pre><code class="javascript syntaxhl" data-language="javascript"> <span class="dl">"</span><span class="s2">schema</span><span class="dl">"</span><span class="p">:</span> <span class="p">{</span>
<span class="dl">"</span><span class="s2">$ref</span><span class="dl">"</span><span class="p">:</span> <span class="dl">"</span><span class="s2">#/components/schemas/ClassMappingModel</span><span class="dl">"</span>
<span class="p">}</span>
</code></pre></code></pre>
<pre><code>}<br /> }<br /> },</code></pre>
<p>should be:</p>
<pre><code>"summary": "Class Mapping endpoint\r",<br /> "description": "Provides a list of all available system classes, their CIDOC CRM mapping, which view they belong, which icon is used and the englisch name",<br /> "responses": {<br /> "200": {<br /> "description": "List of all available system classes",<br /> "content": {<br /> "application/ld+json": {<br /><pre><code class="javascript syntaxhl" data-language="javascript"> <span class="dl">"</span><span class="s2">schema</span><span class="dl">"</span><span class="p">:</span> <span class="p">{</span>
<span class="dl">"</span><span class="s2">type</span><span class="dl">"</span> <span class="p">:</span><span class="dl">"</span><span class="s2">array</span><span class="dl">"</span><span class="p">,</span>
<span class="dl">"</span><span class="s2">items</span><span class="dl">"</span><span class="p">:</span> <span class="p">{</span><span class="dl">"</span><span class="s2">$ref</span><span class="dl">"</span><span class="p">:</span> <span class="dl">"</span><span class="s2">#/components/schemas/ClassMappingModel</span><span class="dl">"</span><span class="p">}</span>
<span class="p">}</span>
</code></pre></code></pre>
<pre><code>}<br /> }<br /> },</code></pre>