Skip to content

the-urlist/backend-csharp

Repository files navigation

The Urlist - Backend

Build status License

The backend for this project was built as a serverless API using Azure Functions and .NET. All the data is stored in a Cosmos DB collection using the SQL API.

Build and run the backend locally

Get the prerequisites

Optional

Run the serverless backend

Navigate into backend folder

cd /src/LinkyLink

Build the project

dotnet build

Rename the local.settings.sample.json file to local.settings.json

Linux & MacOS

mv local.settings.sample.json local.settings.json

Windows command line

REN local.settings.sample.json local.settings.json

Update the local.settings.json file with your Application Insights key to the APPINSIGHTS_INSTRUMENTATIONKEY setting. You could also just remove this if you don't want to use Application Inisghts.

Create an a Cosmos DB instance in Azure using the SQL API. Update the local.settings.json file with your Cosmos DB connection string in the LinkLinkConnection settings. This database will initially be empty. If you try out the API with Postman (see below), the collection and sample documents will be created for you automatically. Otherwise it's structure will be created when you create your first list through the frontend.

Start the function via the command line

func start

func start

Alternatively, start a debuging session in Visual Studio or Visual Studio Code.

Try out the API with Postman

  • Start up Postman and import the theurlist_collection.json file that's in the backend folder
  • Next import the theurlist_localhost_env.json file. That includes the Localhost environment settings.
  • Set your environment to Localhost

postman

  • Run Save Bundle to add some data to Cosmos DB. The structure (collection, documents, etc.) in the database will be created for you if it does not exsist yet. Next run Get bundle for vanity url to retrieve the entry you just created.

If everything was setup correctly, your should see a response that resembles the following.

postman