blob: e0338a2a077e55f467eaa218dc71b1faad3cd045 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (18) -->
<title>Rest (Apache Juneau 9.0.0)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.juneau.rest.annotation, annotation type: Rest">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon"></span><span class="nav-bar-toggle-icon"></span><span class="nav-bar-toggle-icon"></span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">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#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Field</li>
<li>Required</li>
<li><a href="#annotation-interface-optional-element-summary">Optional</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#annotation-interface-element-detail">Element</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Required&nbsp;|&nbsp;</li>
<li><a href="#annotation-interface-optional-element-summary">Optional</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#annotation-interface-element-detail">Element</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.juneau.rest.annotation</a></div>
<h1 title="Annotation Type Rest" class="title">Annotation Type Rest</h1>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="annotations"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation" class="external-link">@Target</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/ElementType.html#TYPE" title="class or interface in java.lang.annotation" class="external-link">TYPE</a>)
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Retention.html" title="class or interface in java.lang.annotation" class="external-link">@Retention</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/RetentionPolicy.html#RUNTIME" title="class or interface in java.lang.annotation" class="external-link">RUNTIME</a>)
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Inherited.html" title="class or interface in java.lang.annotation" class="external-link">@Inherited</a>
<a href="../../annotation/ContextApply.html" title="annotation in org.apache.juneau.annotation">@ContextApply</a>({<a href="RestAnnotation.RestContextApply.html" title="class in org.apache.juneau.rest.annotation">RestContextApply.class</a>,<a href="RestAnnotation.RestOpContextApply.html" title="class in org.apache.juneau.rest.annotation">RestOpContextApply.class</a>})
<a href="../../annotation/AnnotationGroup.html" title="annotation in org.apache.juneau.annotation">@AnnotationGroup</a>(<a href="Rest.html" title="annotation in org.apache.juneau.rest.annotation">Rest.class</a>)
</span><span class="modifiers">public @interface </span><span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-54">Rest</a></span></div>
<div class="block">Used to denote that a class is a REST resource and to associate metadata on it.
<p>
Usually used on a subclass of <a href="../servlet/RestServlet.html" title="class in org.apache.juneau.rest.servlet"><code>RestServlet</code></a>, but can be used to annotate any class that you want to expose as
a REST resource.
<h5 class='section'>See Also:</h5><ul>
<li class='link'><a class="doclink" href="../../../../../index.html#jrs.AnnotatedClasses">@Rest-Annotated Classes</a>
</ul></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
<li>
<section class="member-summary" id="annotation-interface-optional-element-summary">
<h2>Optional Element Summary</h2>
<div class="caption"><span>Optional Elements</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Optional Element</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#allowedHeaderParams()" class="member-name-link">allowedHeaderParams</a></code></div>
<div class="col-last even-row-color">
<div class="block">Allowed header URL parameters.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#allowedMethodHeaders()" class="member-name-link">allowedMethodHeaders</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Allowed method headers.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#allowedMethodParams()" class="member-name-link">allowedMethodParams</a></code></div>
<div class="col-last even-row-color">
<div class="block">Allowed method parameters.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../cp/BeanStore.html" title="class in org.apache.juneau.cp">BeanStore</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#beanStore()" class="member-name-link">beanStore</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The resolver used for resolving instances of child resources and various other beans including:
<a href="../logger/CallLogger.html" title="class in org.apache.juneau.rest.logger"><code>CallLogger</code></a>
<a href="../swagger/SwaggerProvider.html" title="interface in org.apache.juneau.rest.swagger"><code>SwaggerProvider</code></a>
<a href="../../cp/FileFinder.html" title="interface in org.apache.juneau.cp"><code>FileFinder</code></a>
<a href="../staticfile/StaticFiles.html" title="interface in org.apache.juneau.rest.staticfile"><code>StaticFiles</code></a>
</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../logger/CallLogger.html" title="class in org.apache.juneau.rest.logger">CallLogger</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#callLogger()" class="member-name-link">callLogger</a></code></div>
<div class="col-last even-row-color">
<div class="block">Specifies the logger to use for logging of HTTP requests and responses.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;[]</code></div>
<div class="col-second odd-row-color"><code><a href="#children()" class="member-name-link">children</a></code></div>
<div class="col-last odd-row-color">
<div class="block">REST children.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#clientVersionHeader()" class="member-name-link">clientVersionHeader</a></code></div>
<div class="col-last even-row-color">
<div class="block">Client version header.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#config()" class="member-name-link">config</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Optional location of configuration file for this servlet.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</code></div>
<div class="col-second even-row-color"><code><a href="#consumes()" class="member-name-link">consumes</a></code></div>
<div class="col-last even-row-color">
<div class="block">Supported content media types.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../converter/RestConverter.html" title="interface in org.apache.juneau.rest.converter">RestConverter</a>&gt;[]</code></div>
<div class="col-second odd-row-color"><code><a href="#converters()" class="member-name-link">converters</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Class-level response converters.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#debug()" class="member-name-link">debug</a></code></div>
<div class="col-last even-row-color">
<div class="block">Enable debug mode.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../debug/DebugEnablement.html" title="class in org.apache.juneau.rest.debug">DebugEnablement</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#debugEnablement()" class="member-name-link">debugEnablement</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Debug enablement bean.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#debugOn()" class="member-name-link">debugOn</a></code></div>
<div class="col-last even-row-color">
<div class="block">Enable debug mode on specified classes/methods.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#defaultAccept()" class="member-name-link">defaultAccept</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Default <c>Accept</c> header.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#defaultCharset()" class="member-name-link">defaultCharset</a></code></div>
<div class="col-last even-row-color">
<div class="block">Default character encoding.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#defaultContentType()" class="member-name-link">defaultContentType</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Default <c>Content-Type</c> header.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</code></div>
<div class="col-second even-row-color"><code><a href="#defaultRequestAttributes()" class="member-name-link">defaultRequestAttributes</a></code></div>
<div class="col-last even-row-color">
<div class="block">Default request attributes.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</code></div>
<div class="col-second odd-row-color"><code><a href="#defaultRequestHeaders()" class="member-name-link">defaultRequestHeaders</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Default request headers.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</code></div>
<div class="col-second even-row-color"><code><a href="#defaultResponseHeaders()" class="member-name-link">defaultResponseHeaders</a></code></div>
<div class="col-last even-row-color">
<div class="block">Default response headers.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</code></div>
<div class="col-second odd-row-color"><code><a href="#description()" class="member-name-link">description</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Optional servlet description.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#disableContentParam()" class="member-name-link">disableContentParam</a></code></div>
<div class="col-last even-row-color">
<div class="block">Disable content URL parameter.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../encoders/Encoder.html" title="class in org.apache.juneau.encoders">Encoder</a>&gt;[]</code></div>
<div class="col-second odd-row-color"><code><a href="#encoders()" class="member-name-link">encoders</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Specifies the compression encoders for this resource.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../guard/RestGuard.html" title="class in org.apache.juneau.rest.guard">RestGuard</a>&gt;[]</code></div>
<div class="col-second even-row-color"><code><a href="#guards()" class="member-name-link">guards</a></code></div>
<div class="col-last even-row-color">
<div class="block">Class-level guards.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#maxInput()" class="member-name-link">maxInput</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The maximum allowed input size (in bytes) on HTTP requests.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#messages()" class="member-name-link">messages</a></code></div>
<div class="col-last even-row-color">
<div class="block">Messages.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</code></div>
<div class="col-second odd-row-color"><code><a href="#on()" class="member-name-link">on</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Dynamically apply this annotation to the specified classes.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;[]</code></div>
<div class="col-second even-row-color"><code><a href="#onClass()" class="member-name-link">onClass</a></code></div>
<div class="col-last even-row-color">
<div class="block">Dynamically apply this annotation to the specified classes.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;[]</code></div>
<div class="col-second odd-row-color"><code><a href="#parsers()" class="member-name-link">parsers</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Specifies the parsers for converting HTTP request bodies into POJOs.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../httppart/HttpPartParser.html" title="interface in org.apache.juneau.httppart">HttpPartParser</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#partParser()" class="member-name-link">partParser</a></code></div>
<div class="col-last even-row-color">
<div class="block">HTTP part parser.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../httppart/HttpPartSerializer.html" title="interface in org.apache.juneau.httppart">HttpPartSerializer</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#partSerializer()" class="member-name-link">partSerializer</a></code></div>
<div class="col-last odd-row-color">
<div class="block">HTTP part serializer.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#path()" class="member-name-link">path</a></code></div>
<div class="col-last even-row-color">
<div class="block">Resource path.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</code></div>
<div class="col-second odd-row-color"><code><a href="#produces()" class="member-name-link">produces</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Supported accept media types.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#renderResponseStackTraces()" class="member-name-link">renderResponseStackTraces</a></code></div>
<div class="col-last even-row-color">
<div class="block">Render response stack traces in responses.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../processor/ResponseProcessor.html" title="interface in org.apache.juneau.rest.processor">ResponseProcessor</a>&gt;[]</code></div>
<div class="col-second odd-row-color"><code><a href="#responseProcessors()" class="member-name-link">responseProcessors</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Response processors.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../RestChildren.html" title="class in org.apache.juneau.rest">RestChildren</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#restChildrenClass()" class="member-name-link">restChildrenClass</a></code></div>
<div class="col-last even-row-color">
<div class="block">REST children class.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../arg/RestOpArg.html" title="interface in org.apache.juneau.rest.arg">RestOpArg</a>&gt;[]</code></div>
<div class="col-second odd-row-color"><code><a href="#restOpArgs()" class="member-name-link">restOpArgs</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Java REST operation method parameter resolvers.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../RestOperations.html" title="class in org.apache.juneau.rest">RestOperations</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#restOperationsClass()" class="member-name-link">restOperationsClass</a></code></div>
<div class="col-last even-row-color">
<div class="block">REST methods class.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#roleGuard()" class="member-name-link">roleGuard</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Role guard.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#rolesDeclared()" class="member-name-link">rolesDeclared</a></code></div>
<div class="col-last even-row-color">
<div class="block">Declared roles.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>&gt;[]</code></div>
<div class="col-second odd-row-color"><code><a href="#serializers()" class="member-name-link">serializers</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Specifies the serializers for POJOs into HTTP response bodies.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#siteName()" class="member-name-link">siteName</a></code></div>
<div class="col-last even-row-color">
<div class="block">Optional site name.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../staticfile/StaticFiles.html" title="interface in org.apache.juneau.rest.staticfile">StaticFiles</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#staticFiles()" class="member-name-link">staticFiles</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Static files.</div>
</div>
<div class="col-first even-row-color"><code><a href="Swagger.html" title="annotation in org.apache.juneau.rest.annotation">Swagger</a></code></div>
<div class="col-second even-row-color"><code><a href="#swagger()" class="member-name-link">swagger</a></code></div>
<div class="col-last even-row-color">
<div class="block">Provides swagger-specific metadata on this resource.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../swagger/SwaggerProvider.html" title="interface in org.apache.juneau.rest.swagger">SwaggerProvider</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#swaggerProvider()" class="member-name-link">swaggerProvider</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Swagger provider.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</code></div>
<div class="col-second even-row-color"><code><a href="#title()" class="member-name-link">title</a></code></div>
<div class="col-last even-row-color">
<div class="block">Optional servlet title.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#uriAuthority()" class="member-name-link">uriAuthority</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Resource authority path.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#uriContext()" class="member-name-link">uriContext</a></code></div>
<div class="col-last even-row-color">
<div class="block">Resource context path.</div>
</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color"><code><a href="#uriRelativity()" class="member-name-link">uriRelativity</a></code></div>
<div class="col-last odd-row-color">
<div class="block">URI-resolution relativity.</div>
</div>
<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#uriResolution()" class="member-name-link">uriResolution</a></code></div>
<div class="col-last even-row-color">
<div class="block">URI-resolution.</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details" id="annotation-interface-element-detail">
<ul class="details-list">
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<li>
<section class="member-details">
<h2>Element Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="disableContentParam()">
<h3>disableContentParam</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-85">disableContentParam</a></span></div>
<div class="block">Disable content URL parameter.
<p>
When enabled, the HTTP content content on PUT and POST requests can be passed in as text using the <js>"content"</js>
URL parameter.
<br>
For example:
<p class='burlenc'>
?content=(name='John%20Smith',age=45)
</p>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#disableContentParam()"><code>RestContext.Builder.disableContentParam()</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="allowedHeaderParams()">
<h3>allowedHeaderParams</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-115">allowedHeaderParams</a></span></div>
<div class="block">Allowed header URL parameters.
<p>
When specified, allows headers such as <js>"Accept"</js> and <js>"Content-Type"</js> to be passed in as URL query
parameters.
<br>
For example:
<p class='burlenc'>
?Accept=text/json&amp;Content-Type=text/json
</p>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
<li class='note'>
Use <js>"*"</js> to represent all methods.
<li class='note'>
Use <js>"NONE"</js> (case insensitive) to suppress inheriting a value from a parent class.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#allowedHeaderParams(java.lang.String)"><code>RestContext.Builder.allowedHeaderParams(String)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="allowedMethodHeaders()">
<h3>allowedMethodHeaders</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-143">allowedMethodHeaders</a></span></div>
<div class="block">Allowed method headers.
<p>
A comma-delimited list of HTTP method names that are allowed to be passed as values in an <c>X-Method</c> HTTP header
to override the real HTTP method name.
<p>
Allows you to override the actual HTTP method with a simulated method.
<br>For example, if an HTTP Client API doesn't support <c>PATCH</c> but does support <c>POST</c> (because
<c>PATCH</c> is not part of the original HTTP spec), you can add a <c>X-Method: PATCH</c> header on a normal
<c>HTTP POST /foo</c> request call which will make the HTTP call look like a <c>PATCH</c> request in any of the REST APIs.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
<li class='note'>
Method names are case-insensitive.
<li class='note'>
Use <js>"*"</js> to represent all methods.
<li class='note'>
Use <js>"NONE"</js> (case insensitive) to suppress inheriting a value from a parent class.
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="allowedMethodParams()">
<h3>allowedMethodParams</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-173">allowedMethodParams</a></span></div>
<div class="block">Allowed method parameters.
<p>
When specified, the HTTP method can be overridden by passing in a <js>"method"</js> URL parameter on a regular
GET request.
<br>
For example:
<p class='burlenc'>
?method=OPTIONS
</p>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
<li class='note'>
Use <js>"*"</js> to represent all methods.
<li class='note'>
Use <js>"NONE"</js> (case insensitive) to suppress inheriting a value from a parent class.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#allowedMethodParams(java.lang.String)"><code>RestContext.Builder.allowedMethodParams(String)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="callLogger()">
<h3>callLogger</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../logger/CallLogger.html" title="class in org.apache.juneau.rest.logger">CallLogger</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-203">callLogger</a></span></div>
<div class="block">Specifies the logger to use for logging of HTTP requests and responses.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
The default call logger if not specified is <a href="../logger/CallLogger.html" title="class in org.apache.juneau.rest.logger"><code>CallLogger</code></a>.
<li class='note'>
The resource class itself will be used if it implements the <a href="../logger/CallLogger.html" title="class in org.apache.juneau.rest.logger"><code>CallLogger</code></a> interface and not
explicitly overridden via this annotation.
<li class='note'>
The implementation must have one of the following constructors:
<ul>
<li><code><jk>public</jk> T(RestContext)</code>
<li><code><jk>public</jk> T()</code>
<li><code><jk>public static</jk> T <jsm>create</jsm>(RestContext)</code>
<li><code><jk>public static</jk> T <jsm>create</jsm>()</code>
</ul>
<li class='note'>
Inner classes of the REST resource class are allowed.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#callLogger()"><code>RestContext.Builder.callLogger()</code></a>
<li class='link'><a class="doclink" href="../../../../../index.html#jrs.LoggingAndDebugging">Logging / Debugging</a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>org.apache.juneau.rest.logger.CallLogger.Void.class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="beanStore()">
<h3>beanStore</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../cp/BeanStore.html" title="class in org.apache.juneau.cp">BeanStore</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-220">beanStore</a></span></div>
<div class="block">The resolver used for resolving instances of child resources and various other beans including:
<ul>
<li><a href="../logger/CallLogger.html" title="class in org.apache.juneau.rest.logger"><code>CallLogger</code></a>
<li><a href="../swagger/SwaggerProvider.html" title="interface in org.apache.juneau.rest.swagger"><code>SwaggerProvider</code></a>
<li><a href="../../cp/FileFinder.html" title="interface in org.apache.juneau.cp"><code>FileFinder</code></a>
<li><a href="../staticfile/StaticFiles.html" title="interface in org.apache.juneau.rest.staticfile"><code>StaticFiles</code></a>
</ul>
<p>
Note that the <c>SpringRestServlet</c> classes uses the <c>SpringBeanStore</c> class to allow for any
Spring beans to be injected into your REST resources.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>org.apache.juneau.cp.BeanStore.Void.class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="children()">
<h3>children</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-240">children</a></span></div>
<div class="block">REST children.
<p>
Defines children of this resource.
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Children on child are combined with those on parent class.
<li>Children are list parent-to-child in the order they appear in the annotation.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#children(java.lang.Object...)"><code>RestContext.Builder.children(Object...)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="clientVersionHeader()">
<h3>clientVersionHeader</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-260">clientVersionHeader</a></span></div>
<div class="block">Client version header.
<p>
Specifies the name of the header used to denote the client version on HTTP requests.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#clientVersionHeader(java.lang.String)"><code>RestContext.Builder.clientVersionHeader(String)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="config()">
<h3>config</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-288">config</a></span></div>
<div class="block">Optional location of configuration file for this servlet.
<p>
The configuration file .
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Config file is searched for in child-to-parent order.
</ul>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
<li class='note'>
Use the keyword <c>SYSTEM_DEFAULT</c> to refer to the system default configuration
returned by the <a href="../../config/Config.html#getSystemDefault()"><code>Config.getSystemDefault()</code></a>.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#config(org.apache.juneau.config.Config)"><code>RestContext.Builder.config(Config)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="consumes()">
<h3>consumes</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-308">consumes</a></span></div>
<div class="block">Supported content media types.
<p>
Overrides the media types inferred from the parsers that identify what media types can be consumed by the resource.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#consumes(org.apache.juneau.MediaType...)"><code>RestContext.Builder.consumes(MediaType...)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="converters()">
<h3>converters</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../converter/RestConverter.html" title="interface in org.apache.juneau.rest.converter">RestConverter</a>&gt;[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-329">converters</a></span></div>
<div class="block">Class-level response converters.
<p>
Associates one or more <a href="../converter/RestConverter.html" title="interface in org.apache.juneau.rest.converter"><code>converters</code></a> with a resource class.
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Converters on child are combined with those on parent class.
<li>Converters are executed child-to-parent in the order they appear in the annotation.
<li>Converters on methods are executed before those on classes.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestOpContext.Builder.html#converters()"><code>RestOpContext.Builder.converters()</code></a> - Registering converters with REST resources.
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="debug()">
<h3>debug</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-364">debug</a></span></div>
<div class="block">Enable debug mode.
<p>
Enables the following:
<ul class='spaced-list'>
<li>
HTTP request/response bodies are cached in memory for logging purposes.
<li>
HTTP requests/responses are logged to the registered <a href="../logger/CallLogger.html" title="class in org.apache.juneau.rest.logger"><code>CallLogger</code></a>.
</ul>
<ul class='values'>
<li><js>"true"</js> - Debug is enabled for all requests.
<li><js>"false"</js> - Debug is disabled for all requests.
<li><js>"conditional"</js> - Debug is enabled only for requests that have a <c class='snippet'>Debug: true</c> header.
</ul>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
<li class='note'>
These debug settings can be overridden by the <a href="#debugOn()"><code>debugOn()</code></a> annotation or at runtime by directly
calling <a href="../RestRequest.html#setDebug()"><code>RestRequest.setDebug()</code></a>.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#debugEnablement()"><code>RestContext.Builder.debugEnablement()</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="debugEnablement()">
<h3>debugEnablement</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../debug/DebugEnablement.html" title="class in org.apache.juneau.rest.debug">DebugEnablement</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-377">debugEnablement</a></span></div>
<div class="block">Debug enablement bean.
TODO
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#debugEnablement()"><code>RestContext.Builder.debugEnablement()</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>org.apache.juneau.rest.debug.DebugEnablement.Void.class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="debugOn()">
<h3>debugOn</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-492">debugOn</a></span></div>
<div class="block">Enable debug mode on specified classes/methods.
<p>
Enables the following:
<ul class='spaced-list'>
<li>
HTTP request/response bodies are cached in memory for logging purposes on matching classes and methods.
<li>
HTTP requests/responses are logged to the registered <a href="../logger/CallLogger.html" title="class in org.apache.juneau.rest.logger"><code>CallLogger</code></a>.
</ul>
<p>
Consists of a comma-delimited list of strings of the following forms:
<ul>
<li><js>"class-identifier"</js> - Enable debug on the specified class.
<li><js>"class-identifier=[true|false|conditional]"</js> - Explicitly enable debug on the specified class.
<li><js>"method-identifier"</js> - Enable debug on the specified class.
<li><js>"method-identifier=[true|false|conditional]"</js> - Explicitly enable debug on the specified class.
</ul>
<p>
Class identifiers can be any of the following forms:
<ul>
<li>Fully qualified:
<ul>
<li><js>"com.foo.MyClass"</js>
</ul>
<li>Fully qualified inner class:
<ul>
<li><js>"com.foo.MyClass$Inner1$Inner2"</js>
</ul>
<li>Simple:
<ul>
<li><js>"MyClass"</js>
</ul>
<li>Simple inner:
<ul>
<li><js>"MyClass$Inner1$Inner2"</js>
<li><js>"Inner1$Inner2"</js>
<li><js>"Inner2"</js>
</ul>
</ul>
<p>
Method identifiers can be any of the following forms:
<ul>
<li>Fully qualified with args:
<ul>
<li><js>"com.foo.MyClass.myMethod(String,int)"</js>
<li><js>"com.foo.MyClass.myMethod(java.lang.String,int)"</js>
<li><js>"com.foo.MyClass.myMethod()"</js>
</ul>
<li>Fully qualified:
<ul>
<li><js>"com.foo.MyClass.myMethod"</js>
</ul>
<li>Simple with args:
<ul>
<li><js>"MyClass.myMethod(String,int)"</js>
<li><js>"MyClass.myMethod(java.lang.String,int)"</js>
<li><js>"MyClass.myMethod()"</js>
</ul>
<li>Simple:
<ul>
<li><js>"MyClass.myMethod"</js>
</ul>
<li>Simple inner class:
<ul>
<li><js>"MyClass$Inner1$Inner2.myMethod"</js>
<li><js>"Inner1$Inner2.myMethod"</js>
<li><js>"Inner2.myMethod"</js>
</ul>
</ul>
<h5 class='figure'>Example:</h5>
<p class='bjava'>
<jc>// Turn on debug per-request on the class and always on the doX() method</jc>.
<ja>@Rest</ja>(
debugOn=<js>"MyResource=conditional,MyResource.doX=true"</js>
)
<jk>public class</jk> MyResource {
<ja>@RestGet</ja>
<jk>public void</jk> String getX() {
...
}
</p>
<p>
A more-typical scenario is to pull this setting from an external source such as system property or environment
variable:
<h5 class='figure'>Example:</h5>
<p class='bjava'>
<ja>@Rest</ja>(
debugOn=<js>"$E{DEBUG_ON_SETTINGS}"</js>
)
<jk>public class</jk> MyResource {...}
</p>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
<li class='note'>
These debug settings override the settings define via <a href="#debug()"><code>debug()</code></a> and <a href="RestOp.html#debug()"><code>RestOp.debug()</code></a>.
<li class='note'>
These debug settings can be overridden at runtime by directly calling <a href="../RestRequest.html#setDebug()"><code>RestRequest.setDebug()</code></a>.
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="defaultAccept()">
<h3>defaultAccept</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-511">defaultAccept</a></span></div>
<div class="block">Default <c>Accept</c> header.
<p>
The default value for the <c>Accept</c> header if not specified on a request.
<p>
This is a shortcut for using <a href="#defaultRequestHeaders()"><code>defaultRequestHeaders()</code></a> for just this specific header.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="defaultCharset()">
<h3>defaultCharset</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-537">defaultCharset</a></span></div>
<div class="block">Default character encoding.
<p>
The default character encoding for the request and response if not specified on the request.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#defaultCharset(java.nio.charset.Charset)"><code>RestContext.Builder.defaultCharset(Charset)</code></a>
<li class='jm'><a href="../RestOpContext.Builder.html#defaultCharset(java.nio.charset.Charset)"><code>RestOpContext.Builder.defaultCharset(Charset)</code></a>
<li class='ja'><a href="RestOp.html#defaultCharset()"><code>RestOp.defaultCharset()</code></a>
<li class='ja'><a href="RestGet.html#defaultCharset()"><code>RestGet.defaultCharset()</code></a>
<li class='ja'><a href="RestPut.html#defaultCharset()"><code>RestPut.defaultCharset()</code></a>
<li class='ja'><a href="RestPost.html#defaultCharset()"><code>RestPost.defaultCharset()</code></a>
<li class='ja'><a href="RestDelete.html#defaultCharset()"><code>RestDelete.defaultCharset()</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="defaultContentType()">
<h3>defaultContentType</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-556">defaultContentType</a></span></div>
<div class="block">Default <c>Content-Type</c> header.
<p>
The default value for the <c>Content-Type</c> header if not specified on a request.
<p>
This is a shortcut for using <a href="#defaultRequestHeaders()"><code>defaultRequestHeaders()</code></a> for just this specific header.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="defaultRequestAttributes()">
<h3>defaultRequestAttributes</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-600">defaultRequestAttributes</a></span></div>
<div class="block">Default request attributes.
<p>
Specifies default values for request attributes if they're not already set on the request.
<p>
Affects values returned by the following methods:
<ul>
<li class='jm'><a href="../RestRequest.html#getAttribute(java.lang.String)"><code>RestRequest.getAttribute(String)</code></a>.
<li class='jm'><a href="../RestRequest.html#getAttributes()"><code>RestRequest.getAttributes()</code></a>.
</ul>
<h5 class='section'>Example:</h5>
<p class='bjava'>
<jc>// Defined via annotation resolving to a config file setting with default value.</jc>
<ja>@Rest</ja>(defaultRequestAttributes={<js>"Foo=bar"</js>, <js>"Baz: $C{REST/myAttributeValue}"</js>})
<jk>public class</jk> MyResource {
<jc>// Override at the method level.</jc>
<ja>@RestGet</ja>(defaultRequestAttributes={<js>"Foo: bar"</js>})
<jk>public</jk> Object myMethod() {...}
}
</p>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#defaultRequestAttributes(org.apache.juneau.rest.httppart.NamedAttribute...)"><code>RestContext.Builder.defaultRequestAttributes(NamedAttribute...)</code></a>
<li class='ja'><a href="RestOp.html#defaultRequestAttributes()"><code>RestOp.defaultRequestAttributes()</code></a>
<li class='ja'><a href="RestGet.html#defaultRequestAttributes()"><code>RestGet.defaultRequestAttributes()</code></a>
<li class='ja'><a href="RestPut.html#defaultRequestAttributes()"><code>RestPut.defaultRequestAttributes()</code></a>
<li class='ja'><a href="RestPost.html#defaultRequestAttributes()"><code>RestPost.defaultRequestAttributes()</code></a>
<li class='ja'><a href="RestDelete.html#defaultRequestAttributes()"><code>RestDelete.defaultRequestAttributes()</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="defaultRequestHeaders()">
<h3>defaultRequestHeaders</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-620">defaultRequestHeaders</a></span></div>
<div class="block">Default request headers.
<p>
Specifies default values for request headers if they're not passed in through the request.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#defaultRequestHeaders(org.apache.http.Header...)"><code>RestContext.Builder.defaultRequestHeaders(org.apache.http.Header...)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="defaultResponseHeaders()">
<h3>defaultResponseHeaders</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-640">defaultResponseHeaders</a></span></div>
<div class="block">Default response headers.
<p>
Specifies default values for response headers if they're not set after the Java REST method is called.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#defaultResponseHeaders(org.apache.http.Header...)"><code>RestContext.Builder.defaultResponseHeaders(org.apache.http.Header...)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="description()">
<h3>description</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-664">description</a></span></div>
<div class="block">Optional servlet description.
<p>
It is used to populate the Swagger description field.
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Description is searched for in child-to-parent order.
</ul>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
<li class='note'>
The format is plain-text.
<br>Multiple lines are concatenated with newlines.
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="encoders()">
<h3>encoders</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../encoders/Encoder.html" title="class in org.apache.juneau.encoders">Encoder</a>&gt;[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-711">encoders</a></span></div>
<div class="block">Specifies the compression encoders for this resource.
<p>
Encoders are used to enable various kinds of compression (e.g. <js>"gzip"</js>) on requests and responses.
<p>
Encoders are automatically inherited from <a href="#encoders()"><code>encoders()</code></a> annotations on parent classes with the encoders on child classes
prepended to the encoder group.
The <a href="../../encoders/EncoderSet.NoInherit.html" title="class in org.apache.juneau.encoders"><code>EncoderSet.NoInherit</code></a> class can be used to prevent inheriting from the parent class.
<h5 class='section'>Example:</h5>
<p class='bjava'>
<jc>// Define a REST resource that handles GZIP compression.</jc>
<ja>@Rest</ja>(
encoders={
GzipEncoder.<jk>class</jk>
}
)
<jk>public class</jk> MyResource {
...
}
</p>
<p>
The encoders can also be tailored at the method level using <a href="RestOp.html#encoders()"><code>RestOp.encoders()</code></a> (and related annotations).
<p>
The programmatic equivalent to this annotation is:
<p class='bjava'>
RestContext.Builder <jv>builder</jv> = RestContext.<jsm>create</jsm>(<jv>resource</jv>);
<jv>builder</jv>.getEncoders().add(<jv>classes</jv>);
</p>
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Encoders on child are combined with those on parent class.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='link'><a class="doclink" href="../../../../../index.html#jrs.Encoders">Encoders</a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="guards()">
<h3>guards</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../guard/RestGuard.html" title="class in org.apache.juneau.rest.guard">RestGuard</a>&gt;[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-732">guards</a></span></div>
<div class="block">Class-level guards.
<p>
Associates one or more <a href="../guard/RestGuard.html" title="class in org.apache.juneau.rest.guard"><code>RestGuards</code></a> with all REST methods defined in this class.
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Guards on child are combined with those on parent class.
<li>Guards are executed child-to-parent in the order they appear in the annotation.
<li>Guards on methods are executed before those on classes.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestOpContext.Builder.html#guards()"><code>RestOpContext.Builder.guards()</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="maxInput()">
<h3>maxInput</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-757">maxInput</a></span></div>
<div class="block">The maximum allowed input size (in bytes) on HTTP requests.
<p>
Useful for alleviating DoS attacks by throwing an exception when too much input is received instead of resulting
in out-of-memory errors which could affect system stability.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#maxInput(java.lang.String)"><code>RestContext.Builder.maxInput(String)</code></a>
<li class='jm'><a href="../RestOpContext.Builder.html#maxInput(java.lang.String)"><code>RestOpContext.Builder.maxInput(String)</code></a>
<li class='ja'><a href="RestOp.html#maxInput()"><code>RestOp.maxInput()</code></a>
<li class='ja'><a href="RestPost.html#maxInput()"><code>RestPost.maxInput()</code></a>
<li class='ja'><a href="RestPut.html#maxInput()"><code>RestPut.maxInput()</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="messages()">
<h3>messages</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-792">messages</a></span></div>
<div class="block">Messages.
Identifies the location of the resource bundle for this class.
<p>
There are two possible formats:
<ul>
<li>A simple string - Represents the <a href="../../cp/Messages.Builder.html#name(java.lang.String)"><code>name</code></a> of the resource bundle.
<br><br><i>Example:</i>
<p class='bjava'>
<jc>// Bundle name is Messages.properties.</jc>
<ja>@Rest</ja>(messages=<js>"Messages"</js>)
</p>
<li>Simplified JSON - Represents parameters for the <a href="../../cp/Messages.Builder.html" title="class in org.apache.juneau.cp"><code>Messages.Builder</code></a> class.
<br><br><i>Example:</i>
<p class='bjava'>
<jc>// Bundles can be found in two packages.</jc>
<ja>@Rest</ja>(messages=<js>"{name:'Messages',baseNames:['{package}.{name}','{package}.i18n.{name}']"</js>)
</p>
</ul>
<p>
If the bundle name is not specified, the class name of the resource object is used.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="on()">
<h3>on</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-803">on</a></span></div>
<div class="block">Dynamically apply this annotation to the specified classes.
<h5 class='section'>See Also:</h5><ul>
<li class='link'><a class="doclink" href="../../../../../index.html#jm.DynamicallyAppliedAnnotations">Dynamically Applied Annotations</a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="onClass()">
<h3>onClass</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-817">onClass</a></span></div>
<div class="block">Dynamically apply this annotation to the specified classes.
<p>
Identical to <a href="#on()"><code>on()</code></a> except allows you to specify class objects instead of a strings.
<h5 class='section'>See Also:</h5><ul>
<li class='link'><a class="doclink" href="../../../../../index.html#jm.DynamicallyAppliedAnnotations">Dynamically Applied Annotations</a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="parsers()">
<h3>parsers</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;?&gt;[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-874">parsers</a></span></div>
<div class="block">Specifies the parsers for converting HTTP request bodies into POJOs.
<p>
Parsers are used to convert the content of HTTP requests into POJOs.
<br>Any of the Juneau framework parsers can be used in this setting.
<br>The parser selected is based on the request <c>Content-Type</c> header matched against the values returned by the following method
using a best-match algorithm:
<ul class='javatree'>
<li class='jm'><a href="../../parser/Parser.html#getMediaTypes()"><code>Parser.getMediaTypes()</code></a>
</ul>
<p>
Parsers are automatically inherited from <a href="#parsers()"><code>parsers()</code></a> annotations on parent classes with the parsers on child classes
prepended to the parser group.
The <a href="../../parser/ParserSet.NoInherit.html" title="class in org.apache.juneau.parser"><code>ParserSet.NoInherit</code></a> class can be used to prevent inheriting from the parent class.
<h5 class='section'>Example:</h5>
<p class='bjava'>
<jc>// Define a REST resource that can consume JSON and XML.</jc>
<ja>@Rest</ja>(
parsers={
JsonParser.<jk>class</jk>,
XmlParser.<jk>class</jk>
}
)
<jk>public class</jk> MyResource {
...
}
</p>
<p>
The parsers can also be tailored at the method level using <a href="RestOp.html#parsers()"><code>RestOp.parsers()</code></a> (and related annotations).
<p>
The programmatic equivalent to this annotation is:
<p class='bjava'>
RestContext.Builder <jv>builder</jv> = RestContext.<jsm>create</jsm>(<jv>resource</jv>);
<jv>builder</jv>.getParsers().add(<jv>classes</jv>);
</p>
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Parsers on child override those on parent class.
<li><a href="../../parser/ParserSet.Inherit.html" title="class in org.apache.juneau.parser"><code>ParserSet.Inherit</code></a> class can be used to inherit and augment values from parent.
<li><a href="../../parser/ParserSet.NoInherit.html" title="class in org.apache.juneau.parser"><code>ParserSet.NoInherit</code></a> class can be used to suppress inheriting from parent.
<li>Parsers on methods take precedence over those on classes.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='link'><a class="doclink" href="../../../../../index.html#jrs.Marshalling">Marshalling</a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="partParser()">
<h3>partParser</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../httppart/HttpPartParser.html" title="interface in org.apache.juneau.httppart">HttpPartParser</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-884">partParser</a></span></div>
<div class="block">HTTP part parser.
<p>
Specifies the <a href="../../httppart/HttpPartParser.html" title="interface in org.apache.juneau.httppart"><code>HttpPartParser</code></a> to use for parsing headers, query/form parameters, and URI parts.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>org.apache.juneau.httppart.HttpPartParser.Void.class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="partSerializer()">
<h3>partSerializer</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../httppart/HttpPartSerializer.html" title="interface in org.apache.juneau.httppart">HttpPartSerializer</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-894">partSerializer</a></span></div>
<div class="block">HTTP part serializer.
<p>
Specifies the <a href="../../httppart/HttpPartSerializer.html" title="interface in org.apache.juneau.httppart"><code>HttpPartSerializer</code></a> to use for serializing headers, query/form parameters, and URI parts.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>org.apache.juneau.httppart.HttpPartSerializer.Void.class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="path()">
<h3>path</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-993">path</a></span></div>
<div class="block">Resource path.
<p>
Used in the following situations:
<ul class='spaced-list'>
<li>
On child resources (resource classes attached to parents via the <a href="#children()"><code>children()</code></a> annotation) to identify
the subpath used to access the child resource relative to the parent.
<li>
On top-level <a href="../servlet/RestServlet.html" title="class in org.apache.juneau.rest.servlet"><code>RestServlet</code></a> classes deployed as Spring beans when <c>JuneauRestInitializer</c> is being used.
</ul>
<h5 class='topic'>On child resources</h5>
<p>
The typical usage is to define a path to a child resource relative to the parent resource.
<h5 class='figure'>Example:</h5>
<p class='bjava'>
<ja>@Rest</ja>(
children={ChildResource.<jk>class</jk>}
)
<jk>public class</jk> TopLevelResource <jk>extends</jk> BasicRestServlet {...}
<ja>@Rest</ja>(
path=<js>"/child"</js>,
children={GrandchildResource.<jk>class</jk>}
)
<jk>public class</jk> ChildResource {...}
<ja>@Rest</ja>(
path=<js>"/grandchild"</js>
)
<jk>public class</jk> GrandchildResource {
<ja>@RestGet</ja>(<js>"/"</js>)
<jk>public</jk> String sayHello() {
<jk>return</jk> <js>"Hello!"</js>;
}
}
</p>
<p>
In the example above, assuming the <c>TopLevelResource</c> servlet is deployed to path <c>/myContext/myServlet</c>,
then the <c>sayHello</c> method is accessible through the URI <c>/myContext/myServlet/child/grandchild</c>.
<p>
Note that in this scenario, the <c>path</c> attribute is not defined on the top-level resource.
Specifying the path on the top-level resource has no effect, but can be used for readability purposes.
<h5 class='topic'>Path variables</h5>
<p>
The path can contain variables that get resolved to <a href="../../http/annotation/Path.html" title="annotation in org.apache.juneau.http.annotation"><code>@Path</code></a> parameters
or access through the <a href="../RestRequest.html#getPathParams()"><code>RestRequest.getPathParams()</code></a> method.
<h5 class='figure'>Example:</h5>
<p class='bjava'>
<ja>@Rest</ja>(
path=<js>"/myResource/{foo}/{bar}"</js>
)
<jk>public class</jk> MyResource <jk>extends</jk> BasicRestServlet {
<ja>@RestGet</ja>(<js>"/{baz}"</js>)
<jk>public void</jk> String doX(<ja>@Path</ja> String <jv>foo</jv>, <ja>@Path</ja> <jk>int</jk> <jv>bar</jv>, <ja>@Path</ja> MyPojo <jv>baz</jv>) {
...
}
}
</p>
<p>
Variables can be used on either top-level or child resources and can be defined on multiple levels.
<p>
All variables in the path must be specified or else the target will not resolve and a <c>404</c> will result.
<p>
When variables are used on a path of a top-level resource deployed as a Spring bean in a Spring Boot application,
the first part of the URL must be a literal which will be used as the servlet path of the registered servlet.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
The leading slash is optional. <js>"/myResource"</js> and <js>"myResource"</js> is equivalent.
<li class='note'>
The paths <js>"/myResource"</js> and <js>"/myResource/*"</js> are equivalent.
<li class='note'>
Paths must not end with <js>"/"</js> (per the servlet spec).
</ul>
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Path is searched for in child-to-parent order.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#path(java.lang.String)"><code>RestContext.Builder.path(String)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="produces()">
<h3>produces</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1013">produces</a></span></div>
<div class="block">Supported accept media types.
<p>
Overrides the media types inferred from the serializers that identify what media types can be produced by the resource.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#produces(org.apache.juneau.MediaType...)"><code>RestContext.Builder.produces(MediaType...)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="renderResponseStackTraces()">
<h3>renderResponseStackTraces</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1029">renderResponseStackTraces</a></span></div>
<div class="block">Render response stack traces in responses.
<p>
Render stack traces in HTTP response bodies when errors occur.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="responseProcessors()">
<h3>responseProcessors</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../processor/ResponseProcessor.html" title="interface in org.apache.juneau.rest.processor">ResponseProcessor</a>&gt;[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1044">responseProcessors</a></span></div>
<div class="block">Response processors.
<p>
Specifies a list of <a href="../processor/ResponseProcessor.html" title="interface in org.apache.juneau.rest.processor"><code>ResponseProcessor</code></a> classes that know how to convert POJOs returned by REST methods or
set via <a href="../RestResponse.html#setContent(java.lang.Object)"><code>RestResponse.setContent(Object)</code></a> into appropriate HTTP responses.
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#responseProcessors()"><code>RestContext.Builder.responseProcessors()</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="restChildrenClass()">
<h3>restChildrenClass</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../RestChildren.html" title="class in org.apache.juneau.rest">RestChildren</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1058">restChildrenClass</a></span></div>
<div class="block">REST children class.
<p>
Allows you to extend the <a href="../RestChildren.html" title="class in org.apache.juneau.rest"><code>RestChildren</code></a> class to modify how any of the methods are implemented.
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#restChildrenClass(java.lang.Class)"><code>RestContext.Builder.restChildrenClass(Class)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>org.apache.juneau.rest.RestChildren.Void.class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="restOperationsClass()">
<h3>restOperationsClass</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../RestOperations.html" title="class in org.apache.juneau.rest">RestOperations</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1072">restOperationsClass</a></span></div>
<div class="block">REST methods class.
<p>
Allows you to extend the <a href="../RestOperations.html" title="class in org.apache.juneau.rest"><code>RestOperations</code></a> class to modify how any of the methods are implemented.
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#restOperationsClass(java.lang.Class)"><code>RestContext.Builder.restOperationsClass(Class)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>org.apache.juneau.rest.RestOperations.Void.class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="restOpArgs()">
<h3>restOpArgs</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../arg/RestOpArg.html" title="interface in org.apache.juneau.rest.arg">RestOpArg</a>&gt;[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1088">restOpArgs</a></span></div>
<div class="block">Java REST operation method parameter resolvers.
<p>
By default, the Juneau framework will automatically Java method parameters of various types (e.g.
<c>RestRequest</c>, <c>Accept</c>, <c>Reader</c>).
<br>This setting allows you to provide your own resolvers for your own class types that you want resolved.
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#restOpArgs(java.lang.Class...)"><code>RestContext.Builder.restOpArgs(Class...)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="roleGuard()">
<h3>roleGuard</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1142">roleGuard</a></span></div>
<div class="block">Role guard.
<p>
An expression defining if a user with the specified roles are allowed to access methods on this class.
<p>
This is a shortcut for specifying <a href="RestOp.html#roleGuard()"><code>RestOp.roleGuard()</code></a> on all the REST operations on a class.
<h5 class='section'>Example:</h5>
<p class='bjava'>
<ja>@Rest</ja>(
path=<js>"/foo"</js>,
roleGuard=<js>"ROLE_ADMIN || (ROLE_READ_WRITE &amp;&amp; ROLE_SPECIAL)"</js>
)
<jk>public class</jk> MyResource <jk>extends</jk> BasicRestServlet {
...
}
</p>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports any of the following expression constructs:
<ul>
<li><js>"foo"</js> - Single arguments.
<li><js>"foo,bar,baz"</js> - Multiple OR'ed arguments.
<li><js>"foo | bar | baz"</js> - Multiple OR'ed arguments, pipe syntax.
<li><js>"foo || bar || baz"</js> - Multiple OR'ed arguments, Java-OR syntax.
<li><js>"fo*"</js> - Patterns including <js>'*'</js> and <js>'?'</js>.
<li><js>"fo* &amp; *oo"</js> - Multiple AND'ed arguments, ampersand syntax.
<li><js>"fo* &amp;&amp; *oo"</js> - Multiple AND'ed arguments, Java-AND syntax.
<li><js>"fo* || (*oo || bar)"</js> - Parenthesis.
</ul>
<li>
AND operations take precedence over OR operations (as expected).
<li>
Whitespace is ignored.
<li>
<jk>null</jk> or empty expressions always match as <jk>false</jk>.
<li>
If patterns are used, you must specify the list of declared roles using <a href="#rolesDeclared()"><code>rolesDeclared()</code></a> or <a href="../RestOpContext.Builder.html#rolesDeclared(java.lang.String...)"><code>RestOpContext.Builder.rolesDeclared(String...)</code></a>.
<li>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestOpContext.Builder.html#roleGuard(java.lang.String)"><code>RestOpContext.Builder.roleGuard(String)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="rolesDeclared()">
<h3>rolesDeclared</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1173">rolesDeclared</a></span></div>
<div class="block">Declared roles.
<p>
A comma-delimited list of all possible user roles.
<p>
Used in conjunction with <a href="#roleGuard()"><code>roleGuard()</code></a> is used with patterns.
<p>
This is a shortcut for specifying <a href="RestOp.html#rolesDeclared()"><code>RestOp.rolesDeclared()</code></a> on all the REST operations on a class.
<h5 class='section'>Example:</h5>
<p class='bjava'>
<ja>@Rest</ja>(
rolesDeclared=<js>"ROLE_ADMIN,ROLE_READ_WRITE,ROLE_READ_ONLY,ROLE_SPECIAL"</js>,
roleGuard=<js>"ROLE_ADMIN || (ROLE_READ_WRITE &amp;&amp; ROLE_SPECIAL)"</js>
)
<jk>public class</jk> MyResource <jk>extends</jk> BasicRestServlet {
...
}
</p>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestOpContext.Builder.html#rolesDeclared(java.lang.String...)"><code>RestOpContext.Builder.rolesDeclared(String...)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="serializers()">
<h3>serializers</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../../serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>&gt;[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1230">serializers</a></span></div>
<div class="block">Specifies the serializers for POJOs into HTTP response bodies.
<p>
Serializer are used to convert POJOs to HTTP response bodies.
<br>Any of the Juneau framework serializers can be used in this setting.
<br>The serializer selected is based on the request <c>Accept</c> header matched against the values returned by the following method
using a best-match algorithm:
<ul class='javatree'>
<li class='jm'><a href="../../serializer/Serializer.html#getMediaTypeRanges()"><code>Serializer.getMediaTypeRanges()</code></a>
</ul>
<p>
Serializers are automatically inherited from <a href="#serializers()"><code>serializers()</code></a> annotations on parent classes with the serializers on child classes
prepended to the serializer group.
The <a href="../../serializer/SerializerSet.NoInherit.html" title="class in org.apache.juneau.serializer"><code>SerializerSet.NoInherit</code></a> class can be used to prevent inheriting from the parent class.
<h5 class='section'>Example:</h5>
<p class='bjava'>
<jc>// Define a REST resource that can produce JSON and XML.</jc>
<ja>@Rest</ja>(
serializers={
JsonParser.<jk>class</jk>,
XmlParser.<jk>class</jk>
}
)
<jk>public class</jk> MyResource {
...
}
</p>
<p>
The serializers can also be tailored at the method level using <a href="RestOp.html#serializers()"><code>RestOp.serializers()</code></a> (and related annotations).
<p>
The programmatic equivalent to this annotation is:
<p class='bjava'>
RestContext.Builder <jv>builder</jv> = RestContext.<jsm>create</jsm>(<jv>resource</jv>);
<jv>builder</jv>.getSerializers().add(<jv>classes</jv>);
</p>
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Serializers on child override those on parent class.
<li><a href="../../serializer/SerializerSet.Inherit.html" title="class in org.apache.juneau.serializer"><code>SerializerSet.Inherit</code></a> class can be used to inherit and augment values from parent.
<li><a href="../../serializer/SerializerSet.NoInherit.html" title="class in org.apache.juneau.serializer"><code>SerializerSet.NoInherit</code></a> class can be used to suppress inheriting from parent.
<li>Serializers on methods take precedence over those on classes.
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='link'><a class="doclink" href="../../../../../index.html#jrs.Marshalling">Marshalling</a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="siteName()">
<h3>siteName</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1258">siteName</a></span></div>
<div class="block">Optional site name.
<p>
The site name is intended to be a title that can be applied to the entire site.
<p>
One possible use is if you want to add the same title to the top of all pages by defining a header on a
common parent class like so:
<p class='bjava'>
<ja>@HtmlDocConfig</ja>(
header={
<js>"&lt;h1&gt;$RS{siteName}&lt;/h1&gt;"</js>,
<js>"&lt;h2&gt;$RS{title}&lt;/h2&gt;"</js>
}
)
</p>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="staticFiles()">
<h3>staticFiles</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../staticfile/StaticFiles.html" title="interface in org.apache.juneau.rest.staticfile">StaticFiles</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1286">staticFiles</a></span></div>
<div class="block">Static files.
<p>
Used to retrieve localized files to be served up as static files through the REST API via the following
predefined methods:
<ul class='javatree'>
<li class='jm'><a href="../servlet/BasicRestObject.html#getHtdoc(java.lang.String,java.util.Locale)"><code>BasicRestObject.getHtdoc(String, Locale)</code></a>.
<li class='jm'><a href="../servlet/BasicRestServlet.html#getHtdoc(java.lang.String,java.util.Locale)"><code>BasicRestServlet.getHtdoc(String, Locale)</code></a>.
</ul>
<p>
The static file finder can be accessed through the following methods:
<ul class='javatree'>
<li class='jm'><a href="../RestContext.html#getStaticFiles()"><code>RestContext.getStaticFiles()</code></a>
<li class='jm'><a href="../RestRequest.html#getStaticFiles()"><code>RestRequest.getStaticFiles()</code></a>
</ul>
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Static files on child are combined with those on parent class.
<li>Static files are are executed child-to-parent in the order they appear in the annotation.
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>org.apache.juneau.rest.staticfile.StaticFiles.Void.class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="swagger()">
<h3>swagger</h3>
<div class="member-signature"><span class="return-type"><a href="Swagger.html" title="annotation in org.apache.juneau.rest.annotation">Swagger</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1317">swagger</a></span></div>
<div class="block">Provides swagger-specific metadata on this resource.
<p>
Used to populate the auto-generated OPTIONS swagger documentation.
<h5 class='section'>Example:</h5>
<p class='bjava'>
<ja>@Rest</ja>(
path=<js>"/addressBook"</js>,
<jc>// Swagger info.</jc>
swagger=@Swagger({
<js>"contact:{name:'John Smith',email:'john@smith.com'},"</js>,
<js>"license:{name:'Apache 2.0',url:'http://www.apache.org/licenses/LICENSE-2.0.html'},"</js>,
<js>"version:'2.0',</js>,
<js>"termsOfService:'You are on your own.',"</js>,
<js>"tags:[{name:'Java',description:'Java utility',externalDocs:{description:'Home page',url:'http://juneau.apache.org'}}],"</js>,
<js>"externalDocs:{description:'Home page',url:'http://juneau.apache.org'}"</js>
})
)
</p>
<h5 class='section'>See Also:</h5><ul>
<li class='ja'><a href="Swagger.html" title="annotation in org.apache.juneau.rest.annotation"><code>Swagger</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>@org.apache.juneau.rest.annotation.Swagger</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="swaggerProvider()">
<h3>swaggerProvider</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="../swagger/SwaggerProvider.html" title="interface in org.apache.juneau.rest.swagger">SwaggerProvider</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1328">swaggerProvider</a></span></div>
<div class="block">Swagger provider.
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#swaggerProvider(java.lang.Class)"><code>RestContext.Builder.swaggerProvider(Class)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>org.apache.juneau.rest.swagger.SwaggerProvider.Void.class</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="title()">
<h3>title</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1351">title</a></span></div>
<div class="block">Optional servlet title.
<p>
It is used to populate the Swagger title field.
<h5 class='section'>Inheritance Rules</h5>
<ul>
<li>Label is searched for in child-to-parent order.
</ul>
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
<li class='note'>
Corresponds to the swagger field <c>/info/title</c>.
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>{}</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="uriAuthority()">
<h3>uriAuthority</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1371">uriAuthority</a></span></div>
<div class="block">Resource authority path.
<p>
Overrides the authority path value for this resource and any child resources.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#uriAuthority(java.lang.String)"><code>RestContext.Builder.uriAuthority(String)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="uriContext()">
<h3>uriContext</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1391">uriContext</a></span></div>
<div class="block">Resource context path.
<p>
Overrides the context path value for this resource and any child resources.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#uriContext(java.lang.String)"><code>RestContext.Builder.uriContext(String)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="uriRelativity()">
<h3>uriRelativity</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1414">uriRelativity</a></span></div>
<div class="block">URI-resolution relativity.
<p>
Specifies how relative URIs should be interpreted by serializers.
<p>
See <a href="../../UriResolution.html" title="enum in org.apache.juneau"><code>UriResolution</code></a> for possible values.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#uriRelativity(org.apache.juneau.UriRelativity)"><code>RestContext.Builder.uriRelativity(UriRelativity)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="uriResolution()">
<h3>uriResolution</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/juneau/rest/annotation/Rest.html#line-1437">uriResolution</a></span></div>
<div class="block">URI-resolution.
<p>
Specifies how relative URIs should be interpreted by serializers.
<p>
See <a href="../../UriResolution.html" title="enum in org.apache.juneau"><code>UriResolution</code></a> for possible values.
<h5 class='section'>Notes:</h5><ul>
<li class='note'>
Supports <a class="doclink" href="../../../../../index.html#jrs.SvlVariables">SVL Variables</a>
(e.g. <js>"$L{my.localized.variable}"</js>).
</ul>
<h5 class='section'>See Also:</h5><ul>
<li class='jm'><a href="../RestContext.Builder.html#uriResolution(org.apache.juneau.UriResolution)"><code>RestContext.Builder.uriResolution(UriResolution)</code></a>
</ul></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The annotation value.</dd>
</dl>
<dl class="notes">
<dt>Default:</dt>
<dd>""</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2016&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>