我想有一个@RestController
这需要一个@PathVariable
返回一个特定的对象JSON格式,在适当的状态代码一起。到目前为止,代码的方式,它将返回JSON格式的对象,因为它默认使用内置于Jackson库中的Spring 4。如何在Spring MVC @RestController中响应HTTP状态码@ResponseBody类返回一个对象?
但是我不知道如何使它所以它会给我们说希望有一个API变量,然后JSON数据的消息给用户,那么出错代码(或取决于如果一切顺利成功代码)。例如输出为:
请输入API值作为参数(注:这可能是JSON,以及如果需要的话)
{ “ID”:2, “API”: “3000105000” ...... }(注:这将是JSON响应对象)
状态代码400(或专有状态码)
与参数中的URL看起来像这样
http://localhost:8080/gotech/api/v1/api/3000105000
的代码,我到目前为止有:
@RestController
@RequestMapping(value = "/api/v1")
public class ClientFetchWellDataController {
@Autowired
private OngardWellService ongardWellService;
@RequestMapping(value = "/wells/{apiValue}", method = RequestMethod.GET)
@ResponseBody
public OngardWell fetchWellData(@PathVariable String apiValue){
try{
OngardWell ongardWell = new OngardWell();
ongardWell = ongardWellService.fetchOneByApi(apiValue);
return ongardWell;
}catch(Exception ex){
String errorMessage;
errorMessage = ex + " <== error";
return null;
}
}
}
mmmmm还挺有意义的,那么我现有的代码在哪里呢?或者是你发布了自己的代码,我会打电话来处理我的异常?对不起,我从来没有见过这样的代码,看起来非常有用,尽管如此感谢您的帮助 – Cris 2014-10-01 05:13:37
它与您的代码位于同一控制器中。只需将try-catch从处理程序方法中取出即可。 – Affe 2014-10-01 05:29:55
这是写作RestAPIs我认为非常有用和更好的方式。 如果我有多个控制器,是否必须为所有控制器编写这些处理程序,或者我可以将这些处理程序放入基类还是接口中并使用它? – shraddha 2017-11-07 00:50:54