1
設置爲什麼RestController公開了CrudRepository中的所有操作?
我從中我要揭露只有一組有限的(大部分)讀操作,並添加一些非DB服務PagingAndSortingRepository。我添加了一個REST控制器來放在crud資源庫的前面。
問題
在揚鞭接口,我能看到所有的操作,即使只有一個動作從靜止回購調用。所有的操作都有相同的路徑,例如。在下面的例子中「/ rest/foo」。
如何禁用Spring Boot注入所有操作?
補充意見:
- 如果我沒有使用CRUD回購在暫停控制器的任何方法,操作未列出。即使如果crud repo是自動連線的。
- 我不想在CRUD Repo中單獨禁用每項操作。即使我這樣做揚鞭將列出操作,但通話將失敗405
示例代碼
public interface MyCRUDRepository extends PagingAndSortingRepository<Foo, FooPK> {
}
@RestController
public class MyRESTController {
@Autowired
MyCRUDRepository repository;
@RequestMapping("/rest/foo")
public Foo find(String id) {
return repository.findOne(id);
}
}
定義@ApiOperation,在您的find方法上方使用適當的HTTP方法(GET?),並且swagger將讀取它,並且您應該只在swagger-ui中獲得一個條目。 – mrkernelpanic
@mrkernelpanic謝謝。添加APIOperations抑制了Swagger隱式操作的列表。我還必須在RequestMapping中添加「method」屬性,禁止包含POST在內的所有請求都發送給「findOne」方法。 – user6317694