GithubHelp home page GithubHelp logo

xiaoxiongmao5 / xapi Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 79 KB

XAPI 开放平台-项目入口,一个为开发者提供便携、实用、安全的API调用服务平台。

Home Page: http://60.204.157.168/

ant-design docker-compose dockerfile gin golang nacos-go react umi4

xapi's Introduction

xapi (API开放平台)

在线访问: XAPI

项目介绍

基于 React + Golang + Gin + Dubbo-go 的 API接口开放调用平台。

管理员可以接入并发布接口,同时统计分析各接口的调用情况;用户可以注册登录并开通接口调用权限,浏览接口以及在线进行调试,并可以通过 客户端SDK 轻松调用接口。

项目架构设计

这个项目的架构是一个典型的分布式系统,包括多个独立的子项目,每个子项目具有特定的功能和职责。以下是每个子项目的功能和关系。

  1. 前端项目 GitHub: xapi-frontend :提供用户界面,用户可以登录、查看接口列表、发起接口调用。
  2. 后端项目 GitHub: xapi-backend :提供用户认证、接口管理、账号管理、接口调用功能。
  3. 网关项目 GitHub: xapi-gateway :统一鉴权、限流、路由转发、统一日志、接口染色、统一业务处理等。
  4. 客户端SDK GitHub: xapi-clientsdk :封装了对模拟接口项目的调用,提供了简化的API以便其他项目使用。
  5. 模拟接口项目 :模拟第三方接口,供客户端SDK调用,用于开发和测试。(这个子项目在该项目中属于第三方服务,可使用第三方在线服务或本地开发项目,我直接使用的本地简单项目,就不创建仓库了)

项目展示

image

image

调用接口的流程图

image

技术栈

后端技术栈

  • 主语言:Golang
  • 框架:Gin
  • 数据库:Mysql8.0
  • 注册中心:Nacos
  • RPC远程调用:Dubbo-go
  • 微服务网关:Gin
  • 接口文档生成:swagger
  • CRUD基础代码生成:sqlc
  • 技术设计:API签名认证
  • 容器化部署:Dockerfile、Docker Compose

前端技术栈

  • 开发框架:React、Umi 4
  • 脚手架:Ant Design Pro
  • 组件库:Ant Design、Ant Design Components
  • 语法扩展:TypeScript、Less
  • 打包工具:Webpack
  • 代码规范:ESLint、StyleLint、Prettier
  • 图表展示:Echats
  • 接口代码生成:OpenAPI

快速上手

容器化部署(推荐⭐️)

  1. 克隆该项目到本地
    git clone https://github.com/xiaoxiongmao5/xapi.git
  2. 修改配置
    vim docker-xapi/docker-compose.yml
    修改 services.backend.extra_hosts ,将 xapi-gateway.com 域名解析的IP 改为你部署的服务器的IP(如果端口8080并未对外开放,就设置为内网IP)
  3. [可选] 添加访问拦截黑名单
    vim docker-xapi/docker-xapi-backend/conf/appconfig.json
    vim docker-xapi/docker-xapi-gateway/conf/appconfig.json
    添加要拦截的 ip 到 ipBlackList中。
  4. 启动项目
    docker compose up -d

单个项目部署

按照以下顺序部署项目

  1. 启动 nacos 服务 创建 docker-compose.yml
    version: '2'
    services:
      nacos:
        image: nacos/nacos-server:v2.1.2-slim
        container_name: nacos
        restart: always
        volumes:
          - ./data/nacos/logs:/home/nacos/logs
        environment:
          TZ: Asia/Shanghai
          LANG: en_US.UTF-8
          MODE: standalone
        ports:
          - "8848:8848"
        cpu_shares: 4
        mem_limit: 2048M
    运行 docker compose up -d
  2. 部署 网关 gateway 项目 下载项目到部署服务器上,修改配置文件,go build 编译,运行可执行文件
  3. 部署 后端 backend 项目
    1. 先安装并启动MySQL
    2. 在MySQL中运行 docker-xapi/init.sql,初始化数据
    3. 下载项目到部署服务器上,修改配置文件,go build 编译,运行可执行文件
  4. 部署 前端 frontend 项目 build项目后,放在部署服务器上,使用Nginx代理访问

项目过程中的文章产出 📚

欢迎贡献

项目需要大家的支持,期待更多小伙伴的贡献,你可以:

  • 对于项目中的Bug和优化建议,可以提issues,我会积极响应。

xapi's People

Contributors

xiaoxiongmao5 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.