現在越來越多前后端分離項目,大多數Java服務端都只提供REST接口。Controller層感覺好多都只是將參數轉給Service層而已例如曾經見到的代碼:@RestControllerpublicclassLoginController{@AutowiredprivateLoginServiceloginService;@RequestMapping("/login")publicApiResultlogin(StringuserName,Stringpassword){returnloginService.login(userNmae,password);}}Java服務端要實現一個接口,感覺還是挺麻煩的,要建立Controller,Service,ServiceImpl,DAO,DaoImpl大體五個文件,現在的ORM框架基本都支持代理,少了DaoImpl。但還是有四個文件需要創建。今天看到了Spring-data-rest覺得他的設計思路很好,但還是沒有找到自定義返回結果的方法.只需要一個注解就自動生成了RESTAPI接口@RepositoryRestResource(path="user")@RepositorypublicUserDaoextendsJpaRepository{}//就一個@RepositoryRestResource注解就生成了以下幾個接口GEThttp://localhost:8080/user//用戶列表GEThttp://localhost:8080/user/{id}//單個用戶POSThttp://localhost:8080/user//創建用戶以application/jsonPUThttp://localhost:8080/user/{id}//更新用戶信息請求體為applcation/json還有HEAD,PATCH,DELETE等接口當然spring-data-rest有很多不足,但框架有意的封裝Controller層,這是否說明Java服務端REST服務可以無Controller.可以不用寫Controller層代碼。只關心業務邏輯?@RestServicepublicinterfaceLoginService{@RequestMapping("/login")ApiResultlogin(StringuserName,Stringpassword);}類似上面的代碼是否我們對于@RestService的需求要大于@RestController?Controler層是否在現如今的REST服務下作用已經很小了?
關于現在REST API的Java服務端Controller層的作用是否越來越小了?各位有什么建議?
大話西游666
2019-08-17 10:34:59