# 项目介绍

<div align="left"><figure><img src="https://1235481702-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fv9sLeXVmUlZt17fbW2U4%2Fuploads%2FiSnw4nvdmgDpeGAr8hEm%2Flogo%20(1).png?alt=media&#x26;token=bc666910-907c-49d1-995c-bbe32acf57fd" alt="" width="188"><figcaption></figcaption></figure></div>

## 小睹为快

项目在线预览： [demo](http://acsdemo.uiucode.com)

user: admin

password: 123456

项目Github地址：<https://github.com/linkaias/acs>

项目Gitee地址：<https://gitee.com/tolinkai/acs>

❤️ 创作不易，点个Star便是我更新的动力！您也可以分享好友圈子以支持此项目。

## 项目由来

&#x20;   ACS 是Api Caller Stats的缩写，简单来说就是用于记录API调用数据并且可以便捷的使用ul界面查看。它听起来更像一个记录器，你可以用于在想要记录调用的任何地方使用。支持HTTP接口和GRPC两种方式记录调用。

&#x20;   开发这个项目的初衷是由于在日常开发中，难免涉及到调用三方API，想要直观的观察监控调用次数、频率等有点麻烦。所有就诞生了这么一款产品。用户只需要关注触发记录调用，其他的都无需操作。

## 常用使用场景

* 场景1 ：小明在自己的项目中大量调用一些第三方的API服务，为了方便查看调用记录和调用频率等问题。
* 场景2:  小李有一个自己的博客网站，想观察一下自己的博客实际的访问状态，访问趋势等。
* 场景3:  小红的项目给别人提供了接口服务，为了统计别人调用自己接口的调用量和调用趋势。

## 技术选型 <a href="#ji-shu-xuan-xing" id="ji-shu-xuan-xing"></a>

* 前端：用基于`vue3`的`Element-Plus`构建基础页面。
* 后端：采用高效的go语言开发，使用`Gin`快速搭建基础restful风格API。
* 鉴权：采用JWT鉴权。
* 数据库：采用`MySql`>5.7版本,数据库引擎 innoDBimportant，使用`gorm`实现对数据库的基本操作。Clickhouse和Monge待实现。
* 配置文件：使用`viper`实现.env格式的配置文件。
* 日志：使用logrous和lfshook实现日志记录和分隔。
* 数据通信：支持GRPC和HTTP两种通信方式。

## 主要功能

1. 多维度可视化的API调用状况概览
2. 可管理的调用分组功能，可对调用进行分组记录。
3. 支持Restful风格API和GRPC两种通信模式，快速接入您的系统。
4. 支持多种数据库记录方式。（目前仅支持mysql，其他数据库引擎开发中...）

## 使用流程

如图所示： ACS服务提供了http协议和GRPC协议，用户只需要自己的项目中[调用相关接口](https://funcs.gitbook.io/acs_docs/xiang-mu-jie-ru-shou-ce)，即可轻松的记录数据，无需关注其他事项。

<img src="https://content.gitbook.com/content/v9sLeXVmUlZt17fbW2U4/blobs/nqNGRzI3Ho4YG8SBxlbu/file.excalidraw.svg" alt="" class="gitbook-drawing">

## 反馈和贡献

在以任何形式的参与前，请先阅读开发指南。如果您有好的建议和意见问题，可以通过Issue进行反馈。

{% hint style="success" %}
强烈推荐阅读 [《提问的智慧》](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way) 和 [《如何向开源社区提问题》](https://github.com/seajs/seajs/issues/545) ，更好的问题更容易获得帮助。
{% endhint %}
