分析一下针对性的问题:
RESTful的API出现以后,小微型的webService一般不会出现大量的URL。所以我们的routes文件一般也不会有太多内容,但是也不乏有人想对自己的API进行分类或者多个项目的API整合。
本次我用到的场景可以如此描述:URI可以简单分为两类,一类是固定的URI,比如获取公共资源的API,这种API我们不一般以后不会发生什么变化;另一类是对外的接口,比如我们第一版对外的API,我们希望这些API固定以/api/v1开头,方便我们以后进行版本的迭代。
具体的解决方案:
首先,我们有一个默认的routes文件:
-> /api/v1 api.v1.Routes
# URLs for website
# deadbolt2 test start
GET /deadbolt2 @controllers.TestController.index()
GET /deadbolt2/subjectPresent @controllers.TestController.deadboltSubject()
GET /deadbolt2/subjectNotPresent @controllers.TestController.deadboltNotSubject()
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
然后,拆分出一个routes文件api.v1.routes
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# APIs
GET /questions @controllers.api.v1.Question.getQuestions()
PUT /questions @controllers.api.v1.Question.putQuestions()
POST /questions @controllers.api.v1.Question.postQuestions()
POST /questions/filter @controllers.api.v1.Question.filter()
GET /questions/:id @controllers.api.v1.Question.getQuestionById(id: String)
注意controller的目录结构结构
controllers
│ ErrorController.java
│ list.txt
│ QuestionController.java
│ TestController.java
│
└─api
└─v1
Assessment.java
File.java
Question.java
User.java
更为复杂的应用大家可以去google或者在我以后的工程遇到加以更新。