blob: ef9d456e85ddf716f72b868e8506900ee0ca438e [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>APIResponse</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<link rel="shortcut icon" href="/img/microprofile-favicon.png">
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="APIResponse";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponses.html" title="annotation in org.eclipse.microprofile.openapi.annotations.responses"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html" target="_top">Frames</a></li>
<li><a href="APIResponse.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.microprofile.openapi.annotations.responses</div>
<h2 title="Annotation Type APIResponse" class="title">Annotation Type APIResponse</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@Target(value={METHOD,TYPE})
@Retention(value=RUNTIME)
@Inherited
@Repeatable(value=<a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponses.html" title="annotation in org.eclipse.microprofile.openapi.annotations.responses">APIResponses.class</a>)
public @interface <span class="memberNameLabel">APIResponse</span></pre>
<div class="block">The APIResponse annotation corresponds to the OpenAPI Response model object which describes a single response from an
API Operation, including design-time, static links to operations based on the response.
<p>
When this annotation is applied to a JAX-RS method the response is added to the responses defined in the
corresponding OpenAPI operation. If the operation already has a response with the specified responseCode the
annotation on the method is ignored.
<pre>
&#64;APIResponse(responseCode = "200", description = "Calculate load size", content = {
&#64;Content(mediaType = "application/json", Schema = &#64;Schema(type = "integer"))})
&#64;GET
public getLuggageWeight(Flight id) {
return getBagWeight(id) + getCargoWeight(id);
}
</pre>
<p>
When this annotation is applied to a JAX-RS resource class, the response is added to the responses defined in all
OpenAPI operations which correspond to a method on that class. If an operation already has a response with the
specified responseCode the response is not added to that operation.
<p>
When this annotation is applied to an <code>ExceptionMapper</code> class or <code>toResponse</code> method, it allows
developers to describe the API response that will be added to a generated OpenAPI operation based on a JAX-RS method
that declares an <code>Exception</code> of the type handled by the <code>ExceptionMapper</code>.
<pre>
&#64;Provider
public class NotFoundExceptionMapper implements ExceptionMapper&lt;NotFoundException&gt; {
&#64;Override
&#64;APIResponse(responseCode = "404", description = "Not Found")
public Response toResponse(NotFoundException t) {
return Response.status(404)
.type(MediaType.TEXT_PLAIN)
.entity("Not found")
.build();
}
}
</pre></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd>"https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject"</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.optional.element.summary">
<!-- -->
</a>
<h3>Optional Element Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation">
<caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Optional Element and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/media/Content.html" title="annotation in org.eclipse.microprofile.openapi.annotations.media">Content</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html#content--">content</a></span></code>
<div class="block">An array containing descriptions of potential response payloads for different media types.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html#description--">description</a></span></code>
<div class="block">A short description of the response.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/extensions/Extension.html" title="annotation in org.eclipse.microprofile.openapi.annotations.extensions">Extension</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html#extensions--">extensions</a></span></code>
<div class="block">List of extensions to be added to the <a href="../../../../../../org/eclipse/microprofile/openapi/models/responses/APIResponse.html" title="interface in org.eclipse.microprofile.openapi.models.responses"><code>APIResponse</code></a> model corresponding to the containing annotation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/headers/Header.html" title="annotation in org.eclipse.microprofile.openapi.annotations.headers">Header</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html#headers--">headers</a></span></code>
<div class="block">An array of response headers.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/links/Link.html" title="annotation in org.eclipse.microprofile.openapi.annotations.links">Link</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html#links--">links</a></span></code>
<div class="block">An array of operation links that can be followed from the response.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html#name--">name</a></span></code>
<div class="block">The unique name to identify this response.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html#ref--">ref</a></span></code>
<div class="block">Reference value to a Response object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html#responseCode--">responseCode</a></span></code>
<div class="block">The HTTP response code, or 'default', for the supplied response.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.element.detail">
<!-- -->
</a>
<h3>Element Detail</h3>
<a name="description--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>description</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;description</pre>
<div class="block">A short description of the response. It is a REQUIRED property unless this is only a reference to a response
instance.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>description of the response.</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="responseCode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>responseCode</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;responseCode</pre>
<div class="block">The HTTP response code, or 'default', for the supplied response. May only have 1 default entry.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>HTTP response code for this response instance or default</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>"default"</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="headers--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>headers</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/eclipse/microprofile/openapi/annotations/headers/Header.html" title="annotation in org.eclipse.microprofile.openapi.annotations.headers">Header</a>[]&nbsp;headers</pre>
<div class="block">An array of response headers. Allows additional information to be included with response.
<p>
RFC7230 states header names are case insensitive. If a response header is defined with the name "Content-Type",
it SHALL be ignored.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>array of headers for this response instance</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="links--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>links</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/eclipse/microprofile/openapi/annotations/links/Link.html" title="annotation in org.eclipse.microprofile.openapi.annotations.links">Link</a>[]&nbsp;links</pre>
<div class="block">An array of operation links that can be followed from the response.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>array of operation links for this response instance</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="content--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>content</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/eclipse/microprofile/openapi/annotations/media/Content.html" title="annotation in org.eclipse.microprofile.openapi.annotations.media">Content</a>[]&nbsp;content</pre>
<div class="block">An array containing descriptions of potential response payloads for different media types.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>content of this response instance</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="name--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>name</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;name</pre>
<div class="block">The unique name to identify this response. Only REQUIRED when the response is defined within
<a href="../../../../../../org/eclipse/microprofile/openapi/annotations/Components.html" title="annotation in org.eclipse.microprofile.openapi.annotations"><code>Components</code></a>. The name will be used as the key to add this
response to the 'responses' map for reuse.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this response's name</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="ref--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ref</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;ref</pre>
<div class="block">Reference value to a Response object.
<p>
This property provides a reference to an object defined elsewhere. This property and all other properties are
mutually exclusive. If other properties are defined in addition to the ref property then the result is undefined.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>reference to a response</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>""</dd>
</dl>
</li>
</ul>
</li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="extensions--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>extensions</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/eclipse/microprofile/openapi/annotations/extensions/Extension.html" title="annotation in org.eclipse.microprofile.openapi.annotations.extensions">Extension</a>[]&nbsp;extensions</pre>
<div class="block">List of extensions to be added to the <a href="../../../../../../org/eclipse/microprofile/openapi/models/responses/APIResponse.html" title="interface in org.eclipse.microprofile.openapi.models.responses"><code>APIResponse</code></a> model corresponding to the containing annotation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>array of extensions</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.1</dd>
</dl>
<dl>
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/eclipse/microprofile/openapi/annotations/responses/APIResponses.html" title="annotation in org.eclipse.microprofile.openapi.annotations.responses"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/microprofile/openapi/annotations/responses/APIResponse.html" target="_top">Frames</a></li>
<li><a href="APIResponse.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.optional.element.summary">Optional</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation.type.element.detail">Element</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>