我需要修改GET URL中的请求参数"http://localhost:8081/qeats/v1/restaurants?latitude=87.97864&经度=20.82345";同时将其发送到spring引导控制器,使得纬度和经度值仅精确到小数点后一位。例如";http://localhost:8081/qeats/v1/restaurants?latitude=87.9&经度=20.8〃;
@GetMapping(RESTAURANTS_API)
public ResponseEntity<GetRestaurantsResponse> getRestaurants(
@RequestParam Double latitude,
@RequestParam Double longitude, GetRestaurantsRequest getRestaurantsRequest) {
log.info("getRestaurants called with {}", getRestaurantsRequest);
GetRestaurantsResponse getRestaurantsResponse;
if (getRestaurantsRequest.getLatitude() != null && getRestaurantsRequest.getLongitude() != null
&& getRestaurantsRequest.getLatitude() >= -90
&& getRestaurantsRequest.getLatitude() <= 90
&& getRestaurantsRequest.getLongitude() >= -180
&& getRestaurantsRequest.getLongitude() <= 180) {
getRestaurantsResponse = restaurantService.findAllRestaurantsCloseBy(
getRestaurantsRequest, LocalTime.now());
log.info("getRestaurants returned {}", getRestaurantsResponse);
return ResponseEntity.ok().body(getRestaurantsResponse);
} else {
return ResponseEntity.badRequest().body(null);
}
您可以添加自定义格式化程序或转换器,例如:
- 实现自定义
Formatter
:
public class MyDoubleFormatter implements Formatter<Double> {
private final DecimalFormat decimalFormat = new DecimalFormat("#.#");
@Override
public Double parse(String text, Locale locale) {
return Double.parseDouble(decimalFormat.format(Double.parseDouble(text)));
}
@Override
public String print(Double value, Locale locale) {
return value.toString();
}
}
- 注册自定义
Formatter
:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addFormatter(new MyDoubleFormatter());
}
}