我正在测试弹簧数据休息。我正在关注本教程以了解其工作原理。
到目前为止,代码很简单,如:
@Entity
@SequenceGenerator(name="my_seq", sequenceName="user_id_seq")
@Table(name = "employees")
data class Employee (@Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "my_seq") val id: Long? = null,
val name: String = "defConstructorHell")
当我与GET
询问时,我获得以下JSON:
{
"_embedded" : {
"employees" : [ {
"name" : "ciao",
"_links" : {
"self" : {
"href" : "http://localhost:5000/api/employees/1"
},
"employee" : {
"href" : "http://localhost:5000/api/employees/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:5000/api/employees{?page,size,sort}",
"templated" : true
},
"profile" : {
"href" : "http://localhost:5000/api/profile/employees"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
这完全可以,但是我正在使用一个需要标题x-total-count的JS框架。
您是否知道是否有一种方法,请访问弹簧数据?
最终我添加了一个添加请求的标头的控制器:
@RepositoryRestController
class EmployeeController @Autowired constructor(val repo: EmployeeRepository) {
@RequestMapping(method = arrayOf(GET),
path = arrayOf("employees"))
@ResponseBody
fun getEmployees(@RequestParam("_sort", required = false, defaultValue = "id") _sort: String,
@RequestParam("_order", required = false, defaultValue = "DESC") _order: String,
@RequestParam("_start", required = false, defaultValue = "0") _start: Int,
@RequestParam("_end", required = false, defaultValue = "20") _end: Int): ResponseEntity<MutableIterable<Employee>> {
val pr = PageRequest(_start, 20, Sort.Direction.valueOf(_order), _sort)
val result = repo.findAll(pr)
val headers = HttpHeaders()
headers.add("X-Total-Count", result.count().toString())
return ResponseEntity(result.content, headers, OK)
}
}