使用 API 构建应用程序
Structuring an application with it's API
我目前正在开发一个网络应用程序来让客户下订单。
我选择处理应用程序结构的方式是将应用程序拆分为两个子应用程序:
- 1 个仅提供 json 内容的后端应用程序(API)
- 1 个前端应用程序(AngularJS 在我的例子中)采用 API url 作为配置并提供用户内容
现在在服务器上,我所做的测试是创建 2 个虚拟主机:
- app.com
- api.app.com
并将 API 链接到前端应用程序。
问题是所有内容都将通过 https 提供,并且在当前设置中,我需要购买 2 个 SSL证书,或 1 个通配符证书。
第二种解决方案是在前端应用程序上创建一个子目录(比如 /api)并将后端应用程序复制到其中。优点是只获得一个 SSL 证书并将所有内容都放在同一目录中; /api 将是一个 .htaccess 重定向到后端 api.
我认为 "cleanest" 解决方案是完全拆分两个应用程序并为两者获取一个通配符 SSL 证书,但我想听听是否有人有一些经验是否有一种解决方案比另一个。
合并的好处是可以避免CORS。 CORS 并没有那么糟糕,但它是另一个并发症。话虽这么说,如果你想把它暴露给外界(允许其他网页使用它),你可能还是想经历这个过程。
如果您不希望将您的 API 实际暴露给第三方,而只是将您的图层分开,那么我会考虑合并甚至代理。我已经使用这种架构将我的服务完全置于防火墙之后,并使用 mod_proxy 或类似的东西通过我的网络服务器为我的 API 提供服务。这很有用,因为它限制了您 API 的曝光,并一次性解决了 CORS 问题。
如果你真的想在你的网络服务器和你的 API 服务器之间使用 SSL,你可以在你的网络服务器和你的 API 服务器之间做一个自生成的客户端证书。
我目前正在开发一个网络应用程序来让客户下订单。
我选择处理应用程序结构的方式是将应用程序拆分为两个子应用程序:
- 1 个仅提供 json 内容的后端应用程序(API)
- 1 个前端应用程序(AngularJS 在我的例子中)采用 API url 作为配置并提供用户内容
现在在服务器上,我所做的测试是创建 2 个虚拟主机:
- app.com
- api.app.com
并将 API 链接到前端应用程序。
问题是所有内容都将通过 https 提供,并且在当前设置中,我需要购买 2 个 SSL证书,或 1 个通配符证书。
第二种解决方案是在前端应用程序上创建一个子目录(比如 /api)并将后端应用程序复制到其中。优点是只获得一个 SSL 证书并将所有内容都放在同一目录中; /api 将是一个 .htaccess 重定向到后端 api.
我认为 "cleanest" 解决方案是完全拆分两个应用程序并为两者获取一个通配符 SSL 证书,但我想听听是否有人有一些经验是否有一种解决方案比另一个。
合并的好处是可以避免CORS。 CORS 并没有那么糟糕,但它是另一个并发症。话虽这么说,如果你想把它暴露给外界(允许其他网页使用它),你可能还是想经历这个过程。
如果您不希望将您的 API 实际暴露给第三方,而只是将您的图层分开,那么我会考虑合并甚至代理。我已经使用这种架构将我的服务完全置于防火墙之后,并使用 mod_proxy 或类似的东西通过我的网络服务器为我的 API 提供服务。这很有用,因为它限制了您 API 的曝光,并一次性解决了 CORS 问题。
如果你真的想在你的网络服务器和你的 API 服务器之间使用 SSL,你可以在你的网络服务器和你的 API 服务器之间做一个自生成的客户端证书。