Fetching Data Using `http`

This processor is used to initialise some `fastn` variable with content of JSON fetched from HTTP.
⚠️
Static Vs Dynamic
This feature works better with dynamic hosting. If you are using `fastn` in [static site mode](/static/), then how the page looked when `fastn build` was called will be shown to everyone. But if you are using [dynamic mode](/server/) then this page would be regenerated on every page load.
Consider this data type:
-- record repo:
string full_name:
string description:
string html_url:
integer stargazers_count:
integer watchers_count:

-- record result:
integer total_count: 0
repo list items:
Lang:
ftd
We have two records: `repo`, and `result`. We also have a variable of type `result`. Lets initialise this variable with result of fetching the top repositories from Github:
-- import: fastn/processors as pr

-- result r:
$processor$: pr.http
url: https://api.github.com/search/repositories
sort: stars
order: desc
q: language:rust
Lang:
ftd

`url: string`

This is the URL where we would be fetching the JSON from. It is mandatory.

`method: optional string`

This is the method of the http request. It's an optional field with `get` as default value. Currently only two methods are supported: `get` and `post`

Key: Value pairs

Each key value pair is passed added to the URL as query params, if http request method is `get`. Otherwise, the pair is passed as the request body.
-- string amit-bio:

I am Amit.

-- person amit:
$processor$: pr.http
method: post
name: "Amit"
age: 33
bio: $amit-bio
Lang:
ftd
For `post` method, the above code would convert into the following request body:
{
"name": "Amit",
"age": 33,
"bio": "I am Amit."
}
Lang:
json
Currently, there is no way to specify the type of the body parameters, so you need to use `"` to pass the value as a string type, or you can define any variable and pass it as a reference since the type of the variable is known. The response of the JSON must match with type of the variable where we are storing the result, here it is `r` of type record `result` defined above.

Support `fastn`!

Enjoying `fastn`? Please consider giving us a star ⭐️ on [GitHub](https://github.com/fastn-stack/fastn) to show your support!
[⭐️](https://github.com/fastn-stack/fastn)

Getting Help

Have a question or need help? Visit our [GitHub Q&A discussion](https://github.com/fastn-stack/fastn/discussions/categories/q-a) to get answers and subscribe to it to stay tuned. Join our [Discord](https://discord.gg/a7eBUeutWD) channel and share your thoughts, suggestion, question etc. Connect with our [community](/community/)!
[💻️](/community/)

Found an issue?

If you find some issue, please visit our [GitHub issues](https://github.com/fastn-stack/fastn/issues) to tell us about it.

Quick links:

- [Install `fastn`](install/) - [Create `fastn` package](create-fastn-package/) - [Expander Crash Course](expander/) - [Syntax Highlighting in Sublime Text](/sublime/)

Join us

We welcome you to join our [Discord](https://discord.gg/a7eBUeutWD) community today. We are trying to create the language for human beings and we do not believe it would be possible without your support. We would love to hear from you.
Copyright © 2023 - [FifthTry.com](https://www.fifthtry.com/)