# 原理分析之文档归纳

作为开放平台，必须要提供API文档。

SOP采用微服务架构实现，因此文档应该由各个微服务各自实现。难点是如何归纳各个微服务端提供的文档信息，并统一展示。

SOP的解决思路如下：

- 各微服务使用swagger定义自己的接口信息
- sop-website项目在启动时向注册中心获取所有服务实例，分别调用各个服务提供的swagger文档信息，保存到本地
- sop-website前端页面负责展示swagger提供的文档信息

由于注册中心的存在，可以很方便的获取每个微服务提供的接口，因此可以获取到swagger提供的文档信息。

如此一来的好处是，各微服务不用关心文档该怎么展示，只需要写好swagger注解即可；文档信息展示统一交给另外一个工程来维护，各司其职。

SOP设计初衷亦是如此，微服务只管写业务代码，其它的都交给SOP来处理。

文档归纳原理图：

![文档归纳原理图](images/90013_1.png "10090_1.png")

- sop-website服务启动时向各微服务获取接口信息，保存到本地
- 用户访问website页面，website提供对应的接口文档并展示


