ker*_*lin 10 architecture api phoenix-framework
我有一个问题,关于如何最好地处理从我的凤凰应用程序的体系结构中的第三方API获取数据.基本上,我有一个控制器接收客户端的IP地址作为参数.然后,我需要从外部API获取与该IP地址关联的地理位置,并将它们存储在数据库中(即ip和geolocation).
现在我的方法是使用一个插件,然后在连接结构中返回结果.
但我也可以通过直接在模型中创建函数来获取数据,然后在变更集操作期间调用它.
或许还有另一种选择,例如将其作为OTP应用程序.
在这里寻找关于最佳方法的一些指导,或者至少在一方与另一方之间进行权衡.
虽然我的场景是具体的,但这可能是人们遇到的常见设计问题.
我可以告诉你我是如何解决类似的问题的。我的应用程序是一个用于发送 SMS 文本的 Web 应用程序(我使用 Twilio 作为我的 API)。
当用户提交消息(to_phone_number、body_text 等)时,我将其保存到数据库中,而无需执行任何其他工作。我给它一个单独的状态“已排队”。
然后,我有一个 GenServer 循环拾取所有状态 == 排队的消息并执行 API 调用。在事务中,它将状态更改为“已交付”,并且用户可以在 UI 中看到该状态。
如果您的用户希望地理位置数据随其响应一起显示在屏幕上,那么这种方法就不会那么有用。不管怎样,这是我针对我的用例采取的方法......
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |