Estou tentando escrever um endpoint que permita o uso de separadores opcionais no backend.
Por exemplo, eu tenho um classificador que me permite classificar elementos em uma lista - que é o que o controlador do meu endpoint retorna - com base na data de criação deles. Se o parâmetro correspondente do controlador for verdadeiro, então os elementos são ordenados a partir do mais novo e movendo-se para o mais antigo. Se o parâmetro correspondente é falso, então o oposto.
Este é um projecto de Spring Boot.
Eu estava me perguntando se existe uma maneira mais apropriada de se conseguir isso?
Este é o meu controlador:
@RestController
public class StudentsController{
@Autowired
private GradeBook yearlyGrades;
@GetMapping(/successful)
public List<Student> getSuccessfulStudents(
@RequestParam(name = startDate) Instant startDate,
@RequestParam(name = endDate) Instant endDate,
@RequestParam(defaultValue = false, required = false) boolean sortStartingFromHighestGrade,
@RequestParam(defaultValue = false, required = false) boolean sortStartingFromEarliestDate) {
return this.yearlyGrades.getSuccessfulStudents(startDate, endDate,
sortStartingFromHighestGrade,
sortStartingFromEarliestDate);
}
}
Dependendo do valor verdadeiro/falso dos dois últimos parâmetros sortStartingFromHighestGrade
e sortStartingFromEarliestDate
, o processamento diferente acontece em segundo plano na classe de serviço.