Git Product home page Git Product logo

chirpy_go-server's Introduction

Building a Go Web Server from scratch.

A web server is just a computer that serves data over a network, typically the Internet.

Servers run software that listens for incoming requests from clients. When a request is received, the server responds with the requested data.

graph TD
    A[Client] -->|HTTP Request| B[Server]
    B -->|Route| C[Router]
    C -->|Controller| D[Controller]
    
    D -->|Process JSON| E[Service]
    E -->|Data| F[Storage]
    E -->|Auth Request| G[Auth Service]
    
    subgraph Storage
        F1[Database]
        F2[Cache]
    end
    F1 --> F
    F2 --> F
    
    subgraph Auth
        G1[Login]
        G2[Token]
    end
    G1 --> G
    G2 --> G
    
    G -->|Verify| H[Authentication]
    G -->|Check| I[Authorization]
    H -->|Auth Result| E
    I -->|Auth Result| E
    
    E -->|Trigger| J[Webhooks]
    J -->|Send Data| K[External Service]
Loading

Brief explanation of the key points from the graph above:

  • Client: Initiates the HTTP request.
  • Server: Handles the incoming HTTP request.
  • Router: Directs the request to the appropriate controller.
  • Controller: Processes the request and interacts with the service layer.
  • Service: Manages business logic, interacts with storage, and handles authentication/authorization.
  • Storage: Consists of a database and cache for storing data.
  • Auth Service:
    • Login: Manages user login.
    • Token: Handles token creation and verification.
  • Authentication: Verifies user credentials.
  • Authorization: Checks user permissions.
  • Webhooks: Manages webhooks and sends data to external services.
  • External Service: Receives data from webhooks.

chirpy_go-server's People

Contributors

schambig 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.