我正在为一家初创公司的Android应用设计REST API作为后端服务。该公司目前有一个网页版本的服务,拥有大约10,000个用户。我对Web API的设计有几个疑问:
- 如何使我的API安全?
我只希望Android客户端可以访问API,而其他人无法访问。一种方法是从前端发送加密令牌并在后端解密。还有其他方法吗?另外,我应该如何实现它?
- 如何使我的API快速高效?
有一个特定的终端点非常频繁地被访问。尽管该终端点上的信息不经常更改,但在短时间内发出的请求很可能会返回相同的响应。我该如何使这些请求的响应更快?使用 ETag
和 Last-Modified
能否达到预期效果?
- 我应该相信来自客户端的数据吗?
目前,当我收到带有某些参数的请求时,我仅检查请求中的参数是否为null
。例如,如果请求具有mobile
作为参数,则我仅检查请求中是否存在mobile
参数。我不进行其他检查,例如检查mobile
的长度是否小于10,然后抛出异常。
编辑: 如果有人认为问题“过于宽泛”,请留下评论,以便我可以编辑问题并添加任何必要的详细信息。