Code Monkey home page Code Monkey logo

neosoft-technologies / rest-dot-net-core Goto Github PK

View Code? Open in Web Editor NEW
12.0 2.0 3.0 11.25 MB

Create REST applications by following the software development best practices and conventions using C# .Net Core 3.1(LTS)

Home Page: https://github.com/NeoSOFT-Technologies/rest-dot-net-core/wiki

License: Apache License 2.0

C# 93.97% HTML 2.38% CSS 0.87% JavaScript 0.04% Dockerfile 0.53% Shell 2.20%
netcore31 angular clean-architecture architecture aspnetcore

rest-dot-net-core's People

Contributors

alfaiz12 avatar apoorv-rane avatar avivekm avatar dwivedi-ankita avatar himani-ja avatar neoshivam avatar nitinnjp avatar nst-coe-sasachan avatar sasachan avatar shreedhar-ww avatar

Stargazers

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

Watchers

 avatar  avatar

rest-dot-net-core's Issues

How to perform REST API versioning?

Discussed in #30

Originally posted by sasachan August 5, 2021
APIs only need to be up-versioned when a breaking change is made. Breaking changes include:

  • a change in the format of the response data for one or more calls
  • a change in the request or response type (i.e. changing an integer to a float)
  • removing any part of the API.

Breaking changes should always result in a change to the major version number for an API or content response type.

Non-breaking changes, such as adding new endpoints or new response parameters, do not require a change to the major version number. However, it can be helpful to track the minor versions of APIs when changes are made to support customers who may be receiving cached versions of data or may be experiencing other API issues.

https://www.baeldung.com/rest-versioning

JWT Refresh Token

Discussed in #143

Originally posted by apoorv-neosofttech August 27, 2021
JWT Refresh Token

Adding refresh token in the authenticated response which is stored in browser cookies and can be used to renew the access token without logging in again.

Export CSV

Discussed in #127

Originally posted by apoorv-neosofttech August 26, 2021
Support for exporting CSV

Application alert and info messages -- API

Discussed in #63

Originally posted by nehaharidasneo August 5, 2021
Many a times we tend to hardcode the application alerts or messages in the code. many a times they are conditional as well. Typically in API we need this as then the client will not have to take care of these alerts. Also need to check the way if we can read it from a file or a json so that any change in the string will not need a deployment

Description and Content for Documentation

Discussed in #153

Originally posted by dwivedi-ankita September 1, 2021
Description and Content for following modules,

  • VSIX
  • Project Setup
  • DB-Setup
  • Swagger
  • Authentication
  • Refresh Token
  • Logger
  • Version-Control
  • HealthCheck
  • Request-Response
  • Email
  • CSV download

JWT Authorization

Discussed in #125

Originally posted by apoorv-neosofttech August 26, 2021
JWT Role Based Authorization

Adding role-based authorization that restricts specific endpoints' access and allows only those users with the specified roles.
API responds with 403 forbidden if the user's role doesn't have permission to access that particular api.

Create CI pipeline for boilerplate

Discussed in #77

Originally posted by sasachan August 13, 2021
CI using Git-Actions (cloud version)

  • Build Code
  • (Test) Run UnitTest
  • (Test) Run Vulnerability scanning
  • (Test) Run Static Code Analysis
    • Publish code analysis to sonar
  • (Test) Run acceptable testing(may be done in the future)

Extending feedback from @nehaharidasneo #66(CI).

Application security related recommendations

Discussed in #62

Originally posted by nehaharidasneo August 5, 2021

  • URL encoding/decoding
  • Password encryption helper
  • config files encryption/decryption
  • Antiforgerytoken
  • Application Assets links to be encrypted/authenticated

Structuring the application

Discussed in #33

Originally posted by sasachan August 5, 2021
Use Clean Architecture solution, each project has clear responsibilities. As such, certain types belong in each project and you’ll frequently find folders corresponding to these types in the appropriate project.

https://github.com/jasontaylordev/CleanArchitecture
https://github.com/ardalis/CleanArchitecture
https://github.com/iammukeshm/CleanArchitecture.WebApi
https://github.com/ivanpaulovich/clean-architecture-manga
https://github.com/Amitpnk/Clean-Architecture-ASP.NET-Core
https://github.com/jasontaylordev/NorthwindTraders
https://github.com/thangchung/clean-code-dotnet

Wiki Page Setup for Documentation

Discussed in #147

Originally posted by dwivedi-ankita September 1, 2021

Wiki Page Setup for following modules,

  • VSIX
  • Project Setup
  • DB-Setup
  • Swagger
  • Authentication
  • Refresh Token
  • Logger
  • Version-Control
  • HealthCheck
  • Polly
  • Request-Response
  • Email
  • N-swag
  • CSV download

Automated test
Flow of Control
Architectural principles
Clean Architecture Layers(Design constructs)
Environment Configurations
DevOps

Create CI pipeline for boilerplate

Discussed in #77

Originally posted by sasachan August 13, 2021
CI using Git-Actions (cloud version)

  • Build Code
  • (Test) Run UnitTest
  • (Test) Run Vulnerability scanning
  • (Test) Run Static Code Analysis
    • Publish code analysis to sonar
  • (Test) Run acceptable testing(may be done in the future)

Extending feedback from @nehaharidasneo #66(CI).

Integration testing

  • - Add Integration test cases
  • - CI Pipeline Setup
  • - Docker compose configuration

Global Error Handler

Discussed in #25

Originally posted by sasachan August 5, 2021

  • Global Error Handler Middleware

  • custom middleware that catches and handles all exceptions, and determines which HTTP response code to return based on the exception type.

  • Custom App Exception

  • a custom exception class used to differentiate between handled exceptions that return a 400 response and unhandled exceptions that return a 500 response.

  • Startup.cs

  • the ASP.NET Core startup class that adds the global error handler middleware to the application request pipeline.
    Example Error Service - an example service that shows how to throw a custom exception that will be handled by the global error handler.

https://jasonwatmore.com/post/2020/10/02/aspnet-core-31-global-error-handler-tutorial

Fluent API for EF Core

Discussed in #121

Originally posted by apoorv-neosofttech August 25, 2021
Fluent API integration to define datatype and constraints in EF Core's code first approach

EP - Add Backend WebUI support

Create Backend WebUI (do not connect with REST API)

  • User management
  • Roles/Persona/Claims management
  • Select administrator them (discuss with Santosh)

Video Tutorial for Documentation

Discussed in #150

Originally posted by dwivedi-ankita September 1, 2021
Video Tutorial for following modules,

  • VSIX

  • Project Setup

  • DB-Setup

  • Swagger

  • Authentication

  • Refresh Token

  • Logger

  • Version-Control

  • HealthCheck

  • Request-Response

  • Email

  • CSV download

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.