You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/* Beispiel angelehnt an http://www.torsten-horn.de/techdocs/jee-rest.htm */ package verteiltesysteme.aws;
import javax.ws.rs.*; import javax.ws.rs.core.MediaType;
import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder;
@Path(TCPTimeCounterRESTService.webContextPath) public class TCPTimeCounterRESTService { static final String webContextPath = "/counter"; static final String bucketName = "vertsys-counter"; private Long getCounter() { // Verbindung zu S3
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient(); String region = s3Client.getRegionName(); return new Long(s3Client.getObjectAsString(bucketName, region)); } private boolean setCounter(Long counter) { // Verbindung zu S3
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient(); String region = s3Client.getRegionName(); s3Client.putObject(bucketName, region, new Long(counter).toString()); return true; }
@GET @Produces(MediaType.TEXT_PLAIN) public String getCounterPlain() { return "Plain-Text: " + getCounter(); }
@GET @Produces(MediaType.TEXT_HTML) public String getCounterHtml() { return "<html><head><title>TCPTimeCounter REST Service</title><meta http-equiv=\"refresh\" content=\"5\"/></head><body><h2>HTML: " + getCounter() + "</h2></body></html>"; }
@GET @Produces(MediaType.APPLICATION_JSON) public String getCounterJson() { return "{\n \"type\": \"JSON\",\n \"output\": \"" + getCounter() + "\"\n}"; }
@POST @Consumes(MediaType.TEXT_PLAIN) @Produces(MediaType.TEXT_PLAIN) public String incrCounterPlain(@FormParam("input") String input) { Long currentCounterValue = getCounter(); currentCounterValue = currentCounterValue + (new Long(input)).longValue(); setCounter(currentCounterValue); return "Plain-Text: TCPTimeCounter counter increased by " + input + " to " + currentCounterValue; }
@POST @Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Produces(MediaType.TEXT_HTML) public String incrCounterHtml(@FormParam("input") String input) { Long currentCounterValue = getCounter(); currentCounterValue = currentCounterValue + (new Long(input)).longValue(); setCounter(currentCounterValue); return "<html><title>TCPTimeCounter counter increased by " + input + " to " + currentCounterValue + "</h2></body></html>"; }
@POST @Consumes(MediaType.TEXT_PLAIN) @Produces(MediaType.APPLICATION_JSON) public String incrCounterJson(@QueryParam("input") String input) { Long currentCounterValue = getCounter(); currentCounterValue = currentCounterValue + (new Long(input)).longValue(); setCounter(currentCounterValue); return "{\n \"type\": \"JSON\",\n \"output\": \"Plain-Text: TCPTimeCounter counter increased by " + input + " to " + currentCounterValue + "\"\n}"; } }
|