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.
- Install the Azure Functions Core tools for your operating system
- Install the .NET Core SDK. This repo is pinned to use version 2.2.x of the SDK.
- Install Visual Studio Code or Visual Studio Community edition
- Install the C# extension for Visual Studio Code
- Install the Azure Functions for VS Code extension
- Install Postman
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
Alternatively, start a debuging session in Visual Studio
or Visual Studio Code
.
- Start up Postman and import the
theurlist_collection.json
file that's in thebackend
folder - Next import the
theurlist_localhost_env.json
file. That includes the Localhost environment settings. - Set your environment to
Localhost
- 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 runGet 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.