Skip to content

Commit

Permalink
Add dubbo-sample-rest-jaxrs some jaxrs'annotation & argumments use sa…
Browse files Browse the repository at this point in the history
…mple cases (#1170)
  • Loading branch information
fanlobu authored Aug 15, 2024
1 parent c600334 commit 4131d1f
Show file tree
Hide file tree
Showing 7 changed files with 535 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@
import org.apache.dubbo.rest.demo.pojo.Person;
import org.apache.dubbo.rest.demo.pojo.User;

import javax.ws.rs.core.Cookie;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import java.util.List;
import java.util.Map;
import java.util.Set;
Expand Down Expand Up @@ -63,9 +66,30 @@ public List<String> testMapForm(MultivaluedMap<String, String> params) {
return params.values().stream().flatMap(List::stream).toList();
}

@Override
public String testHeader(HttpHeaders headers) {
return headers.getHeaderString("name");
}

@Override
public String testUriInfo(UriInfo uriInfo) {
return uriInfo.getPath();
}

@Override
public String testForm(Person person) {
return person.getName();
}


@Override
public Person testXml(Person person) {
return person;
}

@Override
public String testCookie(Cookie cookie) {
return cookie.getValue();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,12 @@
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Cookie;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import java.util.List;
import java.util.Map;
import java.util.Set;
Expand Down Expand Up @@ -64,15 +68,34 @@ public interface ComplexParamRequestService {
@Produces(MediaType.TEXT_PLAIN)
String testMapHeader(@HeaderParam("headers") String headerMap);


@POST
@Path("/xml")
@Consumes(MediaType.TEXT_XML)
@Produces(MediaType.APPLICATION_XML)
Person testXml(Person person);


@GET
@Path("/cookie")
@Produces(MediaType.TEXT_PLAIN)
String testCookie(@Context Cookie cookie);
@POST
@Path("/testMapForm")
@Produces({MediaType.APPLICATION_JSON})
@Consumes({MediaType.APPLICATION_FORM_URLENCODED})
List<String> testMapForm(MultivaluedMap<String,String> params);
@GET
@Path("/httpHeader")
String testHeader(@Context HttpHeaders headers);

@GET
@Path("/uri")
@Produces(MediaType.TEXT_PLAIN)
String testUriInfo(@Context UriInfo uriInfo);

@POST
@Path("/xml")
@Consumes(MediaType.TEXT_XML)
@Produces(MediaType.APPLICATION_XML)
Person testXml(Person person);
@Path("/annoForm")
@Produces(MediaType.TEXT_PLAIN)
String testForm(@org.jboss.resteasy.annotations.Form Person person);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@

package org.apache.dubbo.rest.demo.routine;

import org.apache.dubbo.rest.demo.pojo.Person;
import org.apache.dubbo.remoting.http12.HttpMethods;
import org.apache.dubbo.remoting.http12.HttpRequest;
import org.apache.dubbo.remoting.http12.HttpResponse;
import org.apache.dubbo.rest.demo.pojo.User;

import javax.ws.rs.Consumes;
import javax.ws.rs.CookieParam;
Expand All @@ -30,7 +33,12 @@
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;

@Path("/param")
public interface ParamTransferRequestService {
Expand All @@ -40,6 +48,37 @@ public interface ParamTransferRequestService {
@Produces(MediaType.TEXT_PLAIN)
String sayHello(@QueryParam("name") String name);

@GET
@Path("/queryList")
List<String> sayQueryList(@QueryParam("name") List<String> values);


@GET
@Path("/queryMap")
Map<String,String> sayQueryMap(@QueryParam("name") Map<String,String> value);

@GET
@Path("/queryStringMap")
Map<String,List<String>> sayQueryStringMap(@QueryParam("name") Map<String,List<String>> value);


@GET
@Path("/noAnnoParam")
@Produces(MediaType.TEXT_PLAIN)
String sayNoAnnoParam(String name);

@GET
@Path("/noAnnoListParam")
List<String> sayNoAnnoListParam(List<String> value);


@GET
@Path("/noAnnoStringMapParam")
Map<String,String> sayNoAnnoStringMapParam(Map<String,String> value);

@GET
@Path("/noAnnoArrayParam")
String[] sayNoAnnoArrayParam(String[] value);
@POST
@Path("/form")
@Produces(MediaType.TEXT_PLAIN)
Expand All @@ -55,12 +94,62 @@ public interface ParamTransferRequestService {
String sayHeader(@HeaderParam("name") String name);


@GET
@Path("/header/map")
@Produces(MediaType.TEXT_PLAIN)
String sayHeader(@HeaderParam("name") Map<String,String> value);


@GET
@Path("/cookie")
String sayCookie(@CookieParam("cookieId") String cookieId);
@GET
@Path("/cookie/list")
List<String> sayCookie(@CookieParam("cookieId") List<String> values);
@GET
@Path("/cookie/map")
Map<String,String> sayCookie(@CookieParam("cookieId") Map<String,String> value);

@GET
@Path("/matrix;m={m}")
@Produces(MediaType.TEXT_PLAIN)
String sayMatrix(@MatrixParam("name") String name);
String sayMatrixString(@MatrixParam("name") String name);

@GET
@Path("/matrix/list;m={m}")
List<String> sayMatrixList(@MatrixParam("list")List<String> values);


@GET
@Path("/matrix/map;m={m}")
Map<String,List<String>> sayMatrixMap(@MatrixParam("map") Map<String,List<String>> value);


@POST
@Path("/bodyUser")
User sayUser(User users);

@POST
@Path("/bodyList")
List<Long> sayList(List<Long> list);

@POST
@Path("/bodyStringMap")
Map<String, String> sayStringMap(Map<String, String> value);


@POST
@Path("/output")
String sayOutput(OutputStream out) throws IOException;

@GET
@Path("/httpMethod")
@Produces(MediaType.TEXT_PLAIN)
String sayHttpMethod(@Context HttpMethods methods);

@GET
@Path("/http")
@Produces(MediaType.TEXT_PLAIN)
void sayHttpRequest(@Context HttpRequest request, @Context HttpResponse response);

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,16 @@
package org.apache.dubbo.rest.demo.routine;

import org.apache.dubbo.config.annotation.DubboService;
import org.apache.dubbo.remoting.http12.HttpMethods;
import org.apache.dubbo.remoting.http12.HttpRequest;
import org.apache.dubbo.remoting.http12.HttpResponse;
import org.apache.dubbo.rest.demo.pojo.Person;
import org.apache.dubbo.rest.demo.pojo.User;

import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;

@DubboService
public class ParamTransferRequestServiceImpl implements ParamTransferRequestService{
Expand All @@ -27,6 +36,41 @@ public String sayHello(String name) {
return "Hello " + name;
}

@Override
public List<String> sayQueryList(List<String> values) {
return values;
}

@Override
public Map<String, String> sayQueryMap(Map<String, String> value) {
return value;
}

@Override
public Map<String, List<String>> sayQueryStringMap(Map<String, List<String>> value) {
return value;
}

@Override
public String sayNoAnnoParam(String name) {
return name;
}

@Override
public List<String> sayNoAnnoListParam(List<String> value) {
return value;
}

@Override
public Map<String, String> sayNoAnnoStringMapParam(Map<String, String> value) {
return value;
}

@Override
public String[] sayNoAnnoArrayParam(String[] value) {
return value;
}

@Override
public String sayForm(String name) {
return "Hello " + name;
Expand All @@ -42,14 +86,73 @@ public String sayHeader(String name) {
return "Hello " + name;
}


@Override
public String sayHeader(Map<String, String> value) {
return value.get("name");
}

@Override
public String sayCookie(String cookieId) {
return "Hello " + cookieId;
}

@Override
public String sayMatrix(String name) {
return "Hello " + name;
public List<String> sayCookie(List<String> values) {
return values;
}

@Override
public Map<String, String> sayCookie(Map<String, String> value) {
return value;
}

@Override
public String sayMatrixString(String name) {
return "Hello " + name;
}

@Override
public List<String> sayMatrixList(List<String> values) {
return values;
}


@Override
public Map<String, List<String>> sayMatrixMap(Map<String, List<String>> value) {
return value;
}

@Override
public User sayUser(User users) {
return users;
}

@Override
public List<Long> sayList(List<Long> list) {
return list;
}

@Override
public Map<String, String> sayStringMap(Map<String, String> value) {
return value;
}

@Override
public String sayOutput(OutputStream out) throws IOException {
out.write("world".getBytes());
return out.toString();
}

@Override
public String sayHttpMethod(HttpMethods methods) {
return methods.name();
}

@Override
public void sayHttpRequest(HttpRequest request, HttpResponse response) {
String name = request.header("name");
response.setBody(name);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,6 @@ public void testBigInt() {
Assert.assertEquals(new BigInteger("6000000000"), result.getBody());
}


@Test
public void testBigDecimal() {
RestClient defaultClient = RestClient.create();
Expand Down
Loading

0 comments on commit 4131d1f

Please sign in to comment.