blob: d1007894f2480fb1e038a187ba570a221c2f300c [file] [log] [blame]
<!--
/***************************************************************************************************************************
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
***************************************************************************************************************************/
-->
OpenAPI Details
<p>
Juneau supports converting arbitrary POJOs to and from strings using OpenAPI-based schema rules.
</p>
<p>
The relevant classes for using OpenAPI-based serialization are:
</p>
<ul class='javatree'>
<li class='jc'>{@link oaj.oapi.OpenApiSerializer} - Converts POJOs to strings.
<li class='jc'>{@link oaj.oapi.OpenApiParser} - Converts strings to POJOs.
<li class='jc'>{@link oaj.httppart.HttpPartSchema} - Defines the schema for your POJO.
</ul>
<p>
The {@link oaj.httppart.HttpPartSchema} class is used to define the formatting and
validations for a POJO.
It's used in conjunction with the serializer and parser to produce and consume HTTP parts based on
OpenAPI rules.
</p>
<p>
Later in the rest-server and rest-client sections, we also describe how the following annotations
can be applied to method parameters and class types to define the schema for various HTTP parts:
</p>
<ul class='javatree'>
<li class='ja'>{@link oaj.http.annotation.Body}
<li class='ja'>{@link oaj.http.annotation.Header}
<li class='ja'>{@link oaj.http.annotation.Query}
<li class='ja'>{@link oaj.http.annotation.FormData}
<li class='ja'>{@link oaj.http.annotation.Path}
<li class='ja'>{@link oaj.http.annotation.Response}
<li class='ja'>{@link oaj.http.annotation.ResponseHeader}
</ul>