部分实现外部api