Openapi Beschreibung erstellen

Wiplash4

Aktives Mitglied
Ich versuche gerade eine Schnittstellenbeschreibung fuer Json-Rest Api (Restschnittstellen, welche mit Json angesprochen werden) zu erstellen
Java -> Rest-Api.json
.
Ich habe eine EJB eingebettet in eine was.ear. Ich verwende OpenApiDescription.
Die Interface-Klasse heisst AP.java und die Implementation heisst APImpl.java.

Ich google schon den ganzen Abend.
1. Welches maven plugin sollte ich verwenden?
2. Wie wird die Schnittstellenbeschreibung automatisch beim Bauen erzeugt?

Gruss
 

Wiplash4

Aktives Mitglied
Ich will hier nicht zu sehr ins Detail gehen. Aber hier sind einige Details
[CODE lang="java" title="Api Interface"]import javax.ejb.Remote;

import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.info.Contact;
import io.swagger.v3.oas.annotations.info.Info;
import io.swagger.v3.oas.annotations.info.License;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.tags.Tag;


@Remote
@OpenAPIDefinition(tags = { @Tag(name = "widget", description = "Widget operations."),
@Tag(name = "gasket", description = "Operations related to gaskets") }, info = @Info(title = "Example API", version = "1.0.1", contact = @Contact(name = "Example API Support", url = "http://exampleurl.com/contact", email = "techsupport@example.com"), license = @License(name = "Apache 2.0", url = "http://www.apache.org/licenses/LICENSE-2.0.html")))
public interface RestApiInterface
{

/**
* @param requestData requestData
* @return String
* @throws ControlException ControlException
*/
@Operation(summary = "Start", responses = {
@ApiResponse(description = "Start", content = @Content(mediaType = "application/json", schema = @Schema(implementation = RequestData.class))),
@ApiResponse(responseCode = "400", description = "Operation not found") })
public String start(String requestData) throws ControlException;
}[/CODE]


Und dann die Implementation

[CODE lang="java" title="Implementation"]import javax.ejb.Stateless;
import javax.enterprise.inject.Default;
import javax.inject.Inject;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.MediaType;


@Stateless(name = "RestImpl")
@ApplicationPath("beispiel/restImpl")
@Default
public class RestImpl extends Application implements RestApi
{
/** handlerCollection */
@Inject
protected HandlerCollection handlerCollection;

@Path("start")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Override
public String start(@PathParam("requestData") String requestData) throws ControlException
{
return <some method>;
}
}[/CODE]
 

mrBrown

Super-Moderator
Mitarbeiter
Ich persönlich würde auf die Microprofile-Annotationen setzen: https://download.eclipse.org/microprofile/microprofile-open-api-1.0/microprofile-openapi-spec.html

Dazu gibt es ein Maven-Plugin, welches das OpenAPI-Schema zu Build-Zeit generiert: https://github.com/smallrye/smallrye-open-api/tree/master/tools/maven-plugin



Die ejb-Annotationen daran sehen etwas komisch aus, besonders das Remote – sicher, dass die gleiche Klasse sowohl JaxRS-Resource als auch als EJB-Remote-Bean fungieren soll? o_Oi
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Erzeugen einer openapi spec via swagger XML & JSON 1
S Jackson: Erstellen Sie Klassen für Jackson aus XSD XML & JSON 2
T Tags in XML Datei mit Java erstellen XML & JSON 3
Z json inkl. Array/Verschachtelung erstellen XML & JSON 2
S Muss ich bei JAXB immer noch eine zusaetzliche List-Wrapper Klasse erstellen wenn ich mehrere Objekte serialisieren will..? XML & JSON 1
L Soapnachricht aus String erstellen XML & JSON 0
U jar Datei mit ant erstellen XML & JSON 1
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
D XML-Datei per Button erstellen XML & JSON 3
P Eclipse - Ant Skript - jar erstellen mit Referenced Libraries - build.xml XML & JSON 5
S XML file lässt sich in Eclipse nicht erstellen XML & JSON 2
P (Eclipse)Ant Script, .jar Datei erstellen mit MANIFEST.MF XML & JSON 12
B Doctype erstellen XML & JSON 2
B XML file erstellen und in lesbarer form speichern XML & JSON 2
I Tablle mit xsl erstellen XML & JSON 2
D XML Liste erstellen XML & JSON 9
S Konforme XML Datei über XSD erstellen XML & JSON 2
D XSD Datei erstellen XML & JSON 4
B XML auf Basis einer DTD erstellen XML & JSON 2
hdi Probleme beim Erstellen einer XML XML & JSON 7
F Standard für das erstellen von XML? XML & JSON 4
K DTD aus XML erstellen XML & JSON 2
ARadauer Aus XML Datei Objekte erstellen... XML & JSON 3
H XML String erstellen XML & JSON 4
R JAXB: Aus einem Vector oder List XML Datei erstellen XML & JSON 1
M xml - datei erstellen XML & JSON 2
T Java Klasse für gegebenes XML erstellen XML & JSON 4
S Probleme beim erstellen einer Jar XML & JSON 12
G MS-Word Dokument mit Java erstellen XML & JSON 2
M neue Knoten erstellen ? XML & JSON 6
N neue XML-Datei erstellen mit vorhandener Struktur XML & JSON 18
L mit Java eine HTML-Datei erstellen XML & JSON 3
M XSL-FO PDF erstellen XML & JSON 15
G Aus CLOB ein XML erstellen XML & JSON 2
D JTree aus XML Datei erstellen & JTree wieder in XML spei XML & JSON 4
C XML per XSD erstellen XML & JSON 2
P Aus einem Node ein Document erstellen XML & JSON 2
D XML-file mit Eclipse erstellen + Namespaces XML & JSON 2
K XML erstellen, verändern usw. XML & JSON 15
M Elemente mit Prefix via JDOM erstellen XML & JSON 6
P Problem beim erstellen eines neuen Elements (JDOM) XML & JSON 5
H XML-Datei mit SQL-Syntax erstellen und verwalten XML & JSON 4
S Problem beim Erstellen eines pdfs XML & JSON 3
T Newbie Frage.aus Java eine XML Datei erstellen? XML & JSON 7
P HTML mit JDOM erstellen und in JEditorPane zeigen XML & JSON 4
J DTD aus xml Datei erstellen XML & JSON 4
R XML Dokumente erstellen XML & JSON 1

Ähnliche Java Themen

Neue Themen


Oben