Skip to content
This repository has been archived by the owner on Jan 10, 2023. It is now read-only.

erik1066/fdns-ms-dotnet-object

Repository files navigation

Object Microservice: A REST backing service for database operations

The "Object" microservice is a backing service with a RESTful API for NoSQL database operations. Supported operations include CRUD, search, data pipelines, aggregation, and bulk imports. MongoDB is the underlying database technology.

Build Status Docker Pulls

The Object service provides the following benefits:

  • Language-agnostic: Any language can send and consume HTTP requests. No Mongo SDK is required.
  • Centralized data access for the organization: There's one, easy-to-remember URL
  • Consistent API: Searching, data aggregation, etc. are consistent across data sources by-design
  • Consistent authorization: Authorization is handled via OAuth2 scopes
  • Design simplification: Developers can avoid ORMs and treat CRUD operations as HTTP requests
  • Scalability: As a microservice based on .NET Core, it's efficient, fast, and horizontally scalable

This repository represents an unofficial re-implementation of the U.S. Centers for Disease Control and Prevention's Object microservice using ASP.NET Core 2.2 instead of Java Spring.

Get started in 30 seconds

Clone this repo and run the microservice in a Docker container in under 30 seconds (this assumes you have make command-line tools installed):

git clone https://github.com/erik1066/fdns-ms-dotnet-object.git
cd fdns-ms-dotnet-object
make docker-build
make docker-start

Then navigate to http://localhost:9090.

Documentation

README.md explains how to containerize the microservice, debug it, run its unit tests, and contains a quick-start guide for interacting with the microservice once it's running. It also explains how to use OAuth2 scopes to provide course-grained authorization around the microservice's API.

License

The repository utilizes code licensed under the terms of the Apache Software License and therefore is licensed under ASL v2 or later.

This source code in this repository is free: you can redistribute it and/or modify it under the terms of the Apache Software License version 2, or (at your option) any later version.

This source code in this repository is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Apache Software License for more details.

You should have received a copy of the Apache Software License along with this program. If not, see https://www.apache.org/licenses/LICENSE-2.0.html.

The source code forked from other open source projects will inherit its license.

About

A microservice for providing an abstraction layer over a NoSQL database engine, with CRUD operations mapped to HTTP verbs.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published