分离出一个api包，避免core使用混乱