use swagger instead of enunciate

This commit is contained in:
Athou
2013-04-15 21:50:36 +02:00
parent 2152e93086
commit a9eb2595fe
31 changed files with 6895 additions and 169 deletions

View File

@@ -6,15 +6,19 @@ import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.UriInfo;
import org.apache.wicket.ThreadContext;
import org.apache.wicket.authentication.IAuthenticationStrategy;
@@ -41,11 +45,14 @@ import com.commafeed.backend.services.UserService;
import com.commafeed.frontend.CommaFeedApplication;
import com.commafeed.frontend.CommaFeedSession;
import com.commafeed.frontend.SecurityCheck;
import com.commafeed.frontend.rest.ApiListingResource.ServletConfigProxy;
import com.wordnik.swagger.annotations.ApiOperation;
import com.wordnik.swagger.jaxrs.JavaHelp;
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@SecurityCheck(Role.USER)
public abstract class AbstractREST {
public abstract class AbstractREST extends JavaHelp {
@Context
HttpServletRequest request;
@@ -126,7 +133,7 @@ public abstract class AbstractREST {
.entity("You need to be authenticated to do this.").build());
}
boolean allowed = false;
boolean allowed = true;
Method method = context.getMethod();
if (method.isAnnotationPresent(SecurityCheck.class)) {
@@ -153,4 +160,12 @@ public abstract class AbstractREST {
return authorized;
}
@Override
@GET
@ApiOperation(value = "Returns information about API parameters", responseClass = "com.wordnik.swagger.core.Documentation")
public Response getHelp(@Context ServletConfig sc,
@Context HttpHeaders headers, @Context UriInfo uriInfo) {
return super.getHelp(new ServletConfigProxy(sc), headers, uriInfo);
}
}

View File

@@ -5,8 +5,6 @@ import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import org.codehaus.enunciate.doc.DocumentationGroup;
import com.commafeed.backend.model.ApplicationSettings;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.services.ApplicationSettingsService;
@@ -14,7 +12,6 @@ import com.commafeed.frontend.SecurityCheck;
@SecurityCheck(Role.ADMIN)
@Path("admin/settings")
@DocumentationGroup("Application Settings")
public class AdminSettingsREST {
@Inject

View File

@@ -12,7 +12,6 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang.StringUtils;
import org.codehaus.enunciate.doc.DocumentationGroup;
import com.commafeed.backend.StartupBean;
import com.commafeed.backend.model.User;
@@ -27,7 +26,6 @@ import com.google.common.collect.Sets;
@SecurityCheck(Role.ADMIN)
@Path("admin/users")
@DocumentationGroup("User Management")
public class AdminUsersREST extends AbstractREST {
@Path("save")

View File

@@ -13,7 +13,6 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.lang.StringUtils;
import org.codehaus.enunciate.doc.DocumentationGroup;
import com.commafeed.backend.model.FeedCategory;
import com.commafeed.backend.model.FeedEntry;
@@ -24,9 +23,12 @@ import com.commafeed.frontend.model.Entries;
import com.commafeed.frontend.model.Entry;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.annotations.ApiOperation;
import com.wordnik.swagger.annotations.ApiParam;
@Path("entries")
@DocumentationGroup("Entries")
@Path("/entries/")
@Api(value = "/entries", description = "Operations about entries")
public class EntriesREST extends AbstractREST {
public static final String ALL = "all";
@@ -39,9 +41,11 @@ public class EntriesREST extends AbstractREST {
all, unread;
}
@Path("get")
@Path("/get")
@GET
public Entries getEntries(@QueryParam("type") Type type,
@ApiOperation(value = "Find entry by ID", notes = "Add extra notes here", responseClass = "com.commafeed.frontend.model.Entries")
public Entries getEntries(
@ApiParam(value = "ID of entry that needs to be fetched", allowableValues = "range[1,5]", required = true) @QueryParam("type") Type type,
@QueryParam("id") String id,
@QueryParam("readType") ReadType readType,
@DefaultValue("0") @QueryParam("offset") int offset,

View File

@@ -6,7 +6,6 @@ import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import org.apache.commons.lang.StringUtils;
import org.codehaus.enunciate.doc.DocumentationGroup;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
@@ -15,7 +14,6 @@ import com.commafeed.frontend.model.ProfileModificationRequest;
import com.commafeed.frontend.model.UserModel;
@Path("session")
@DocumentationGroup("User settings")
public class SessionREST extends AbstractREST {
@Path("get")

View File

@@ -6,8 +6,6 @@ import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.codehaus.enunciate.doc.DocumentationGroup;
import com.commafeed.backend.model.UserSettings;
import com.commafeed.backend.model.UserSettings.ReadingMode;
import com.commafeed.backend.model.UserSettings.ReadingOrder;
@@ -15,7 +13,6 @@ import com.commafeed.frontend.model.Settings;
import com.google.common.base.Preconditions;
@Path("settings")
@DocumentationGroup("User settings")
public class SettingsREST extends AbstractREST {
@Path("get")

View File

@@ -21,7 +21,6 @@ import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.ObjectUtils;
import org.codehaus.enunciate.doc.DocumentationGroup;
import com.commafeed.backend.model.Feed;
import com.commafeed.backend.model.FeedCategory;
@@ -33,7 +32,6 @@ import com.commafeed.frontend.rest.resources.EntriesREST.Type;
import com.google.common.base.Preconditions;
@Path("subscriptions")
@DocumentationGroup("Subscriptions")
public class SubscriptionsREST extends AbstractREST {
@GET