Giter Club home page Giter Club logo

go-restful's Introduction

Go RESTful

πŸš€ A real world production-grade RESTful Web Services proof-of-concept project.

Objectives

Issues Tracking

Issue Tracking Open issues Closed issues Open PRs Closed PRs

This project use Github project, issues and pull requests to manage and track issues. Refer to this Github project for further details.

Development

Requirements

Local development machines need to have following tools installed and working properly:

Windows users need to additionally have an Unix-shell emulator to be able to run utility scripts (Git Bash is recommended).

Usage

Develop with Visual Studio Code

With all of above requirements fullfiled, developers can experience a full-time local-quality VSCode-powered containerized development environment by just opening the repository in VSCode container mode.

Go here for further details.

Develop without Visual Studio Code

Without VSCode, developers will not be able to achieve a full-time local-quality VSCode-powered containerized development environment. However, if there's any reason that you can not or do not want to work with Visual Studio Code, you can still start a containerized development environment and start working on that or even build your own development solution on top of that.

Go here for further details.

Project structure

Quick overview of project structure, components and their roles.

β”œβ”€β”€ πŸ“.vscode/              # VSCode configurations.
β”œβ”€β”€ πŸ“¦common/               # Common, utility Go components.
β”œβ”€β”€ πŸ“docs/                 # Documentation & assets.
β”œβ”€β”€ πŸ“scripts/              # Utility scripts.
β”œβ”€β”€ πŸ“¦users/                # Users-related Go components.
β”œβ”€β”€ πŸ“„.devcontainer.json    # VSCode Remote-Containers configuration.
β”œβ”€β”€ πŸ“„.gitignore
β”œβ”€β”€ πŸ“„Dockerfile            # Instructions to build development Docker image.
β”œβ”€β”€ πŸ“„go.mod                # Go module configuration.
β”œβ”€β”€ πŸ“„go.sum                # Go module checksum/lock.
β”œβ”€β”€ πŸ“–LICENSE
β”œβ”€β”€ πŸ“–README.md
β”œβ”€β”€ πŸš€main.go               # Application's main entry point.

License

Apache License 2.0 Copyright Β© The Evengers

Copyright Β© The Evengers. All rights reserved.

This project is licensed under the Apache License 2.0 and is available for free.

go-restful's People

Contributors

phuctm97 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-restful's Issues

Implement a simple HTTP view as PoC

Motivation

Get to know how to declare HTTP views and handle HTTP requests in Go.
Select a package (or some packages) to achieve HTTP features.
Define a mechanism to declare HTTP views.

Document base directory structure

Motivation

Developers know what responsibilities that specific files or directories take and know which they should focus on when they're resolving specific issues.

Support VSCode remote container development

Motivation

Be able to use container as full-time development environment with local-quality VSCode development experience β€” including full IntelliSense (completions), code navigation, and debugging.

Support go-dep as dependency management

Motivation

To have proper Go dependency management.

Acceptance criteria

  • go-dep installed and usable in dev container.
  • dep ensure should be run once VSCode Remote-Containers attached containers.
  • .gitignore should be updated appropriately.
  • .vscode/settings.json should be updated appropriately to ignore auto-generated files.

Fix VSCode Remote-Containers workspace mount

Motivation

Local workspace is currently mounted to default directory defined by VSCode Remote-Containers (/workspaces/go-restful), which is a wrong location for a Go package.

Local workspace should be mounted to /go/src/github.com/the-evengers/go-restful instead.

Implement user-related entities components, without unique validation

Motivation

Have enterprise business rules implemented first, which are User model, its attributes and a set of validation methods:

  • Username: unique, only allow digits, underscores, dashes, dots and alphabetical letters, begins with an underscore or alphabetical letter, at least 1-character length and at most 32-character length.
  • Email: valid and unique.
  • Full name: at least 1-character length and at most 128-character length.
  • Bio: optional, at most 256-character length.

Unique validation should not be implemented now, because it involves interface adapters, which need to be defined later.

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.