Vapor 通过URL返回自定义类型
自定义参数类型
首先,在Sources/App/Models中,我们新建一个文件Episode.swift,在这里,定义一个类型Episode,表示数据库中的视频对象:
struct Episode { |
定义路由/routers
router.get("episodes", Episode.parameter) { |
这次,为了可以通过try req.parameters.next(Episode.self)直接通过传入的ID得到对应的Episode对象。在Model中我们要让Episode遵从protocol Parameter:
extension Episode: Parameter { |
其中:
- parameter表示要解析出Episode对象的参数,这里也就是我们通过URL传递的ID;
- container我们暂时还用不到,所以先忽略它就好了;
这样,我们就可以修改之前的/episodes路由了:
让路由返回JSON
我们只要让Episode遵从protocol Content就好了:
struct Episode: Content { |
剩下的事情,就都交给Vapor就好。这样,在/episode路由中,我们可以直接返回Episode对
router.get("episodes", Episode.parameter) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Soyl's Blog!
评论