Package com.david.rest

Source Code of com.david.rest.HelloResources

package com.david.rest;

import com.david.model.Book;
import com.google.gson.Gson;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataParam;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;

@Path("/hello")
public class HelloResources {
    private Gson gson;

    public HelloResources() {
        gson = new Gson();
    }

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getPlainText(@DefaultValue("anonymous") @QueryParam("author") String author) {
        return "Received message from " + author;
    }

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String getHtml() {
        return "<html><em>Hello </em>Mighty <strong>Robot</strong></html>";
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public String getJson() {
        Book book = new Book(2, "First Book");
        return gson.toJson(book);
    }

    @GET
    @Path("/authors/{author}")
    @Produces(MediaType.TEXT_PLAIN)
    public String getAuthor(@PathParam("author") String author) {
        return "Received message from " + author;
    }

    @POST
    @Consumes(MediaType.TEXT_PLAIN)
    public String postHtml(String message) {
        return "POST raw: " + message;
    }

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public String postJson(String bookJson) {
        Book book = gson.fromJson(bookJson, Book.class);
        return "POST json Book object: " + book.toString();
    }

    @POST
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    public String postUrlEncoded(@FormParam("author") String author) {
        return "POST urlencoded: " + author;
    }

    // http://stackoverflow.com/questions/14858321/jax-rs-accept-images-as-input
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    @Produces(MediaType.TEXT_PLAIN)
    public String postFormData(
            @FormDataParam("file") InputStream in,
            @FormDataParam("file") FormDataContentDisposition fileMetadata)
            throws Exception {

        if (fileMetadata == null || fileMetadata.getFileName() == null) {
            return "No filename";
        }
        File file = new File(fileMetadata.getFileName());
        FileOutputStream outputStream = new FileOutputStream(file);

        byte[] buf = new byte[16384];
        int len = in.read(buf);

        while (len != -1) {
            outputStream.write(buf, 0, len);
            len = in.read(buf);
        }

        outputStream.close();
        return "File " + file.getName() + " received\n";
    }

}
TOP

Related Classes of com.david.rest.HelloResources

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.