Я создаю спокойный веб-сервис, используя джерси, который принимает в качестве входных данных 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();
}
Так что мой вопрос в том, является ли это правильным способом обработки запросов и проверки правильности для неправильных входных данных (для даты и большого десятичного числа оба).
Каким должен быть лучший способ обработки сумасшедших форматов даты и больших десятичных входных данных