请注意:
这是一篇很长的帖子。
不确定帖子的标题是否合适:(
唐氏选民请在起飞前提供一些建设性的反馈来改进这篇文章。
=============================================== ===========
我正在实现一个简单的 REST API in Java ,它公开了3个服务:
请求:
{
"display_name" : "MyAwesomeApplication"
}
响应:
{
"application_id" : "abc123def123..." ,
"application_secret" : "abc123def123..." ,
"display_name" : "MyAwesomeApplication"
}
此端点使用简化版的基本身份验证
标题
Name Value
Authorization application_id:application_secret
响应
{
"access_token" : "c47026d990bf4480a259a953bc103495"
}
标题
Name Value
Authorization access_token
请求
{
"application_id" : "abc123def123..." ,
"logger" : "com.logger.service.Uploader" ,
"level" : "Error" ,
"message" : "The communication pipeline is broken."
}
响应:
{
"success" : true|false
}
所以,我已经成功实现了这些功能需求,但我不知道如何实现非功能性需求,如:
1。敏感数据必须加密。
2。每个应用程序(我的网络服务的用户)只允许一个活动会话。
3. 会话生命周期必须可在数据库中配置。
4. 必须异步处理所有日志请求。
5. 日志端点需要通过访问令牌进行身份验证。
6。实施速率限制请求以避免可能的攻击,应用程序每分钟只允许60个请求。如果您用完了60个api呼叫,那么您将收到“超出速率限制”消息,并且必须等待5分钟才能再次发出请求。
有人可以指点一些针对这些用例的资源/教程吗?
我几乎已经阅读了所有我可以在SO和谷歌中得到的东西,而且我阅读的越多,我就越感到困惑。可能不是试图在REST方面学习这些技能,我应该尝试在一个非常基本的客户端 - 服务器Web应用程序中实现它们,请建议是否应该是这种情况。
这是我的第一个REST网络应用,所以请相应地考虑我一个完整的菜鸟和指南。