Как добавить параметр данных в Джерси Restful WebService - PullRequest
0 голосов
/ 05 сентября 2018

Я создаю спокойный веб-сервис, используя джерси, который принимает в качестве входных данных bigdecimal, bigdecimal и date. Я передаю все три как String от клиента, и в сервисе я пытаюсь преобразовать их в Big decimal и Date, чтобы отправить их в БД для получения данных.

Вот мой код клиента:

    public class GenerateRaObjSiteCSVClient
{

   public static final String BASE_URI = "http://localhost:8080/PegaBaseWebServices_ARND";

   public static final String PATH_NAME = "/GenerateCSV/";

   public static final String PATH_ADDRESS = "/GenerateCSV/";

   public static void main( String[] args)
   {
      BigDecimal radioObjId = new BigDecimal( 10000);
      BigDecimal suchId = new BigDecimal( 9090);
      String cutOffDate = "2007-06-27";
      ClientConfig config = new DefaultClientConfig();
      Client client = Client.create( config);
      WebResource resource = client.resource( BASE_URI);
      WebResource clientResource = resource.path( "rest").path( PATH_NAME)
         .queryParam( "radioObjId", radioObjId.toString()).queryParam( "suchId", suchId.toString())
         .queryParam( "cutOffDate", cutOffDate);
      System.out.println( "Client Response \n" + getClientResponse( clientResource));

   }

   /**
    * Returns client response as:- GET http://localhost:8080/ARNDWebServices/rest/GetExampleService/name/Arun
    * 
    * @param service
    * @return
    */
   private static String getClientResponse( WebResource resource)
   {
      System.out.println( resource);
      return resource.accept( "text/csv").get( ClientResponse.class).toString();

   }

и вот услуга:

     @GET
   @Produces( "text/csv")
   public Response getData( @QueryParam( "radioObjId") String radioObjId, @QueryParam( "suchId") String suchId,
      @QueryParam( "cutOffDate") String cutOffDate)
   {
      String errValue = null;
      BigDecimal radObjID = new BigDecimal( radioObjId);
      BigDecimal suchID = new BigDecimal( suchId);

      RadioObjectDAO radioObjectDAO = new RadioObjectDAO();
      DateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd");
      try
      {
         Date parsedDate = formatter.parse( cutOffDate);

         dataList = radioObjectDAO.getCSVData( radObjID, suchID, SqlUtil.DBDatum( parsedDate));

      }
      catch (ParseException e1)
      {

         e1.printStackTrace();
      }
      catch (SQLException e)
      {

         e.printStackTrace();
      }

Так что мой вопрос в том, является ли это правильным способом обработки запросов и проверки правильности для неправильных входных данных (для даты и большого десятичного числа оба). Каким должен быть лучший способ обработки сумасшедших форматов даты и больших десятичных входных данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...