REST API for Java?

2019-03-10 13:01发布

I am preparing an application which is console based and the outcome of the application is a RDF/XML file which contains data of all my connections from LinkedIn. Now the problem is that my entire application is console based and I need to have a REST API so as to incorporate with my application.

I am not aware of REST API's and how to use it with JAVA but can easily get through the documentation and understand it. My applications use the REST API of LinkedIn.

So can you please suggest some of the good REST API for Java?

标签: java rest
3条回答
戒情不戒烟
2楼-- · 2019-03-10 13:13

If you're considering hosting your Java code in a cloud, Raimme Platform gives you a good opportunity to expose a REST API endpoint with just one annotation.

Let's say you have a database object/table called my.app.Customer, and you want to create an endpoint for returning all customers that match a certain name. In Raimme, you would achieve this as follows:

@Rest(url = "customers/find")
public List<Customer> find(@Param("keyword") String keyword)
{
    return { select id, name, company.name from my.app.Customer where name ilike '%#keyword%' };
}

You can find out more here: http://raimme.com/devcenter?questionId=1cg000000000g

查看更多
叼着烟拽天下
3楼-- · 2019-03-10 13:19

Quick code example:

1) Add the javax.ws.rs dependency in your pom (if using Maven) or download it.

    <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.1.1</version> 
    </dependency>

2) Create an empty class to define the path of your service; for example for hearing at application/service/rest would be

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/service/rest")
public class WebConfig extends Application {
}

3) Create the controller of your api. For example if we need these calls: application/service/rest/resource/{id} a simple code would be:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;    

@Path("resource/{id}")
public class ApiController {

  /**
   * Call: <code>/service/rest/resource/23</code>
   * @return HTTP Response
   */
  @GET
  public Response getResource(@PathParam("id") String anId) {
    Resource myResource = whatever.get(anId);
    return Response.status(Status.OK).entity(myResource).build();
  }

4) If we want to specify a JSON response be sure you have the getters for your resource and type:

@GET
@Produces("application/json")
public Response getResource(@PathParam("id") String anId) {
   // the same
}
查看更多
兄弟一词,经得起流年.
4楼-- · 2019-03-10 13:25

JAX-RS is the standard Java API for RESTful web services. Jersey is the reference implementation for this, it has server-side as well as client-side APIs (so, ways to expose methods in your code as RESTful web services, as well as ways to talk to RESTful web services running elsewhere).

There are also other implementations of JAX-RS, for example Apache CXF and JBoss RESTEasy.

查看更多
登录 后发表回答