Comme le dit le titre. Puisqu'il y avait une scène où je l'ai utilisé à l'université, je la laisserai comme mémo. Créez RestAPI avec Apache Wicket. D'autres RestAPI incluent Jersey, mais dans mon université, Wicket est souvent utilisé, donc cette fois je vais l'implémenter avec le titre.
Pour créer une API Rest Vous devez utiliser wicketstuff-restannotations.
La description suivante est requise dans pom.xml.
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-restannotations</artifactId>
<version>6.20.0</version>
</dependency>
<dependency>
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-restannotations-json</artifactId>
<version>6.20.0</version>
</dependency>
Ensuite, créez les classes qui composent l'API. Pour le créer, héritez de AbstractRestResource.
import org.wicketstuff.rest.annotations.MethodMapping;
import org.wicketstuff.rest.contenthandling.json.objserialdeserial.JacksonObjectSerialDeserial;
import org.wicketstuff.rest.contenthandling.json.webserialdeserial.JsonWebSerialDeserial;
import org.wicketstuff.rest.resource.AbstractRestResource;
public class SampleAPI extends AbstractRestResource<JsonWebSerialDeserial> {
private static final long serialVersionUID = -3988855556227959163L;
/**
*exemple
*/
public SampleAPI() {
super(new JsonWebSerialDeserial(new JacksonObjectSerialDeserial()));
}
@MethodMapping("/test/{id}")
public SampleBean sample(long id) {
return new SampleBean(id, "test");
}
}
Ensuite, voici le contenu du SampleBean utilisé dans SampleAPI. JsonProperty vous permet de renommer la clé.
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* sample
*
*/
public class SampleBean implements Serializable {
private static final long serialVersionUID = -6787374014454880191L;
@JsonProperty("id")
private long sampleId;
@JsonProperty("name")
private String sampleName;
/**
*Constructeur sans argument
*/
public SampleBean() {
this.sampleId = -1;
this.sampleName = "";
}
/**
*Constructeur avec arguments
* @param sampleId
* @param sampleName
*/
public SampleBean(long sampleId, String sampleName) {
this.sampleId = sampleId;
this.sampleName = sampleName;
}
/**
* @return sampleId
*/
public long getSampleId() {
return sampleId;
}
/**
* @param sampleId Définir sampleId
*/
public void setSampleId(long sampleId) {
this.sampleId = sampleId;
}
/**
* @return sampleName
*/
public String getSampleName() {
return sampleName;
}
/**
* @param sampleName ensemble sampleName
*/
public void setSampleName(String sampleName) {
this.sampleName = sampleName;
}
}
Ensuite, montez la ressource sur une sous-classe qui hérite de la classe WebApplication.
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.resource.IResource;
import org.apache.wicket.request.resource.ResourceReference;
import com.example.api.SampleAPI;
import com.example.page.IndexPage;
public class MyApplication extends WebApplication {
@Override
public Class<? extends WebPage> getHomePage() {
return IndexPage.class;
}
@Override
public void init() {
super.init();
mountPage("/index", Index.class);
mountResource("/api", new ResourceReference("restReference") {
private static final long serialVersionUID = -3002079769630066308L;
private SampleAPI sampleAPI = new SampleAPI();
@Override
public IResource getResource() {
return sampleAPI;
}
});
}
}
Après cela, lorsque vous appelez l'API, les données au format json seront renvoyées. Pour cette API, si vous spécifiez ʻapi / test / 2` et l'API, la valeur sera renvoyée.
{"id":2,"name":"test"}
Je vais résumer en détail cette fois. (Parce que je suis occupé avec des questions liées à l'université comme décembre.)
Je suis toujours redevable à des articles tels que Wicket et Java. Merci. Site de référence: https://www.monotalk.xyz/blog/apache-wicket%E3%81%A7restapi%E3%82%92%E4%BD%BF%E3%81%86/
Recommended Posts