ktor HTTP API 练习
Posted shy-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ktor HTTP API 练习相关的知识,希望对你有一定的参考价值。
练习一
Question
为每个片段添加唯一 id,并为 /snippets 添加一个 DELETE http 动词,以允许通过身份认证的用户删除自己的片段。
Answer
首先为每个片段添加唯一 id:
data class Snippet(val id: Int, val user: String, val text: String)
val snippets = Collections.synchronizedList(
mutableListOf(
Snippet(id = 1, user = "test", text = "hello"),
Snippet(id = 2, user = "test", text = "world")
)
)
修改新增片段的post请求:
authenticate
post
val post = call.receive<PostSnippet>()
val principal = call.principal<UserIdPrincipal>() ?: error("No principal")
snippets += Snippet(snippets.size+1, principal.name, post.snippet.text)
call.respond(mapOf("OK" to true))
先测试新增片段的请求是否正常,ID正确
添加删除片段的delete请求:
authenticate
delete("/id")
val id = call.parameters["id"]
val snip = snippets.find s -> s.id == id?.toInt()
if (snip != null)
snippets.remove(snip)
call.respond(mapOf("snippets" to synchronized(snippets) snippets.toList() ))
else
call.respond(mapOf("msg" to "no such id"))
添加一个DELETE的HTTP请求测试
DELETE host/snippets/1
Authorization: Bearer auth_token
返回结果如下,id为1的snippets已被删除
以上是关于ktor HTTP API 练习的主要内容,如果未能解决你的问题,请参考以下文章
使用angular4和asp.net core 2 web api做个练习项目