3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.PrintWriter;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
10 import jalview.bin.Cache;
11 import jalview.rest.RestHandler.EndpointI;
13 public abstract class Endpoint implements EndpointI
15 private String name = null;
17 private API api = null;
19 public void setName(String name)
24 public String getName()
29 protected API getAPI()
34 public abstract void processEndpoint(HttpServletRequest request,
35 HttpServletResponse response);
38 * Shared methods below here
41 protected String[] getEndpointPathParameters(HttpServletRequest request)
43 String pathInfo = request.getPathInfo();
44 int slashpos = pathInfo.indexOf('/', 1);
45 return slashpos < 1 ? null
46 : pathInfo.substring(slashpos + 1).split("/");
49 protected void returnError(HttpServletRequest request,
50 HttpServletResponse response, String message)
52 response.setStatus(500); // set this to something better
53 String endpointName = getName();
54 Cache.error(getAPI().getName() + " error: endpoint " + endpointName
55 + " failed: '" + message + "'");
58 PrintWriter writer = response.getWriter();
59 writer.write("Endpoint " + endpointName + ": " + message);
61 } catch (IOException e)
67 protected String getRequestBody(HttpServletRequest request)
70 StringBuilder sb = new StringBuilder();
71 BufferedReader reader = request.getReader();
75 while ((line = reader.readLine()) != null)
77 sb.append(line).append('\n');