First Steps
In this tutorial, you'll learn about all the core features of Oxygen ia a simple step-by-step approach. This guide will be aimed at beginner/intermediate users and will gradually build upon each other.
Setup your first project
Navigate to your projects folder (If you're using and editor like vscode, just open up your project folder
cd /path/to/your/project
Open open a terminal and start the julia repl with this command
juliaBefore we go any further, lets create a new environment for this project. Press the ] key inside the repl to use Pkg (julia's jult in package manager)  you should see something similar to (v1.7) pkg> in the repl
Activate your current environment
pkg> activate .Install the latest version of Oxygen and HTTP
pkg> add Oxygen HTTPPress the backspace button to exit the package manager and return to the julia repl
If everything was done correctly, you should see a Project.toml and Manifest.toml  file created in your project folder
Next lets create our src folder and our main.jl file. Once that's complete, our project  should ook something like this.
project
├── src
│   ├── main.jl
├── Project.toml
├── Manifest.toml
For the duration of this guide, we will be working out of the src/main.jl file 
Creating your first web server
Here's an example of what a simple Oxygen server could look like
module Main 
using Oxygen
using HTTP
@get "/greet" function(req::HTTP.Request)
    return "hello world!"
end
serve()
endStart the webserver with:
include("src/main.jl")Line by line
using Oxygen
using HTTPHere we pull in the both libraries our api depends on. The @get macro and serve() function come from Oxygen and the HTTP.Request type comes from the HTTP library.
Next we move into the core snippet where we define a route for our api. This route is made up of several components.
- http method  => from 
@getmacro (it's a GET request) - path => the endpoint that will get added to our api which is 
"/greet" - request handler => The function that accepts a request and returns a response
 
@get "/greet" function(req::HTTP.Request)
    return "hello world!"
endFinally at the bottom of our Main module we have this function to start up our brand new webserver. This function can take a number of keyword arguments such as the host & port, which can be helpful if you don't want to use the default values.
serve()For example, you can start your server on port 8000 instead of 8080 which is used by default
serve(port=8000)Try out your endpoints
You should see the server starting up inside the console.  You should be able to hit http://127.0.0.1:8080/greet inside your browser and see the following:
"hello world!"Interactive API documenation
Open your browser to http://127.0.0.1:8080/docs Here you'll see the auto-generated documentation for your api. This is done internally by generating a JSON object that conforms to the openapi format. Once generated, you can feed this same schema to libraries like swagger which translate this into an interactive api for you to explore.