接口服务与后台管理系统架构设计

公司做小程序,java后台提供接口服务。同时,针对小程序提交的数据需要登录后台管理系统审核。
实现方式很纠结,希望大神解惑:
1.最简单的办法是把管理后台与小程序api接口放到一个web工程。这样的坏处是/admin和/api在一个工程下,无法控制/admin只在内网访问,如果有人抓到api的地址可以访问admin登录页面。后台更新需要整个工程重新发版。
2.分成两个war,登录和前台api分开能保证两边相互独立,但是后台访问的表与前台访问的表有重复,两个应用操作同一个数据库。

大家帮忙找个好的解决方案吧

最终还是使用了1,由于项目比较小,不想折腾了

其实两种方法都可以。我具体说下吧。
方法一:放在一个项目里,没问题。用两个域名访问呗,接口用域名A访问,管理系统用域名B访问。
给A,B两域名配不同的nginx( 或者你用其它web service也一样),完全可以配成让A只能访问api,B只能访问admin**。

方法二:
两个项目,不同目录,数据库操作的公共代码用软链连接。比如api的叫frontend, admin的叫backend, 共用数据库代码1,2,3统一放backend里。
frontend中有三个相应的软链,链到1,2,3。这样,只要一个地方改了,另一个地方也生效了。

可以绑定/admin服务器ip和mac地址,设置防火墙规则,只允许合法用户登陆/admin

如果为了安全。那就拆分开两个war,同时把一些访问后台表等部分作出模块,两个应用公用这个模块

加一层nginx把它当做防火墙用

目前我们的项目是采用的第二种方案 确实有很多重复的查询逻辑等等 曾经想过把公用的一些逻辑提出来 单独成一个项目 管理后台和接口去请求这个项目的数据 不过没时间去整个规划一下 希望大神们有更好的建议吧