Skip to content
Open
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
84eea95
fix(docs): add FastHTTP Postgres sample run and test instructions
Srinu346 Jan 27, 2026
8ec64c2
fix(docs): add FastHTTP Postgres sample run and test instructions
Srinu346 Jan 27, 2026
812d106
fix(docs): add FastHTTP Postgres sample run and test instructions
Srinu346 Jan 29, 2026
6405ef0
Merge branch 'main' into fix/quickstart-settings
Srinu346 Jan 29, 2026
c970575
fix(docs): add FastHTTP Postgres sample run and test instructions
Srinu346 Jan 29, 2026
31553ca
Merge branch 'main' into fix/quickstart-settings
Srinu346 Feb 2, 2026
78bd363
fix(docs): add FastHTTP Postgres sample run and test instructions
Srinu346 Feb 2, 2026
09a29aa
Merge branch 'fix/quickstart-settings' of https://github.com/Srinu346…
Srinu346 Feb 2, 2026
11b5fae
fix(docs): add FastHTTP Postgres sample run and test instructions
Srinu346 Feb 2, 2026
9486b41
fix(docs): add FastHTTP Postgres sample run and test instructions
Srinu346 Feb 2, 2026
7a97d1b
fix(docs): restore removed content and add Keploy test images
Srinu346 Feb 3, 2026
169ef51
fix(docs): added Keploy images and preserved wsl section
Srinu346 Feb 4, 2026
de87140
fix(docs-ui): improve responsive layout for prev/next navigation card…
kams05-ops Feb 4, 2026
3790292
Merge branch 'main' into fix/quickstart-settings
Srinu346 Feb 11, 2026
0f3d669
Merge branch 'main' into fix/quickstart-settings
Srinu346 Feb 12, 2026
e616ea2
fix(docs): remove redundant line
Srinu346 Feb 12, 2026
540bcfb
Merge branch 'fix/quickstart-settings' of https://github.com/Srinu346…
Srinu346 Feb 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions src/components/QuickStartList.js
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,6 @@ const quickstarts = [
link: "/docs/quickstart/samples-mysql/#running-app-locally-on-linuxwsl-",
},

/*
{
title: "FastHttp + Postgres",
language: "Go",
Expand All @@ -158,7 +157,6 @@ const quickstarts = [
"A sample CRUD application to demonstrate how seamlessly Keploy integrates with FastHttp and Postgres.",
link: "/docs/quickstart/samples-fasthttp/#using-docker-compose-",
},
*/

{
title: "FastHttp + Postgres",
Expand Down
165 changes: 134 additions & 31 deletions versioned_docs/version-4.0.0/quickstart/go-fasthttp-postgres.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,90 +20,191 @@ keyword:
---

import InstallReminder from '@site/src/components/InstallReminder';
import SectionDivider from '@site/src/components/SectionDivider';
import ProductTier from '@site/src/components/ProductTier';
import SectionDivider from '@site/src/components/SectionDivider';

<ProductTier tiers="Open Source, Enterprise" offerings="Self-Hosted, Dedicated" />
# FastHTTP & Postgres Sample CRUD App

# Running App Locally on Linux/WSL 🐧
<ProductTier tiers="Open Source, Enterprise" offerings="Self-Hosted, Dedicated" />

This guide walks you through generating tests and DB mocks for a sample CRUD app built with FastHttp and Postgres using Keploy.

<InstallReminder />

### Clone the sample CRUD application 🧪
## Using Docker Compose

### Clone the sample CRUD App 🧪

```bash
git clone https://github.com/keploy/samples-go.git && cd samples-go/fasthttp-postgres
go mod download
```

We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (Postgres) chill on Docker. Ready? Let's get the party started! 🎉
### Lights, Camera, Record! 🎥

Start up the application and Keploy with a single command. Make sure to keep an eye on the two key flags:

#### Point the app to local Postgres
`-c`: Command to run the app (e.g., `docker compose up`).

Update the Postgres URL to `localhost:5432` in `app.go` (mentioned at line 21 in the sample).
`--container-name`: The container name in the `docker-compose.yml` for traffic interception.

#### Start Postgres
#### Capture the test case

```bash
docker compose up postgres
keploy record -c "docker compose up" --container-name "fasthttp_app" --build-delay 50
```

#### Record with Keploy while running the app
> `--build-delay` adds a buffer (in seconds) to allow images to build/pull and services to start before Keploy begins interception. If your services are already up, you can omit it.

If you're seeing logs that resemble the ones below, you're on the right track:

<img src="https://keploy-devrel.s3.us-west-2.amazonaws.com/Keploy_record_fastapi_golang.png" alt="Sample Keploy Record" width="100%" style={{ borderRadius: '5px' }} />

Make API calls using **cURL**, **Postman**, or **Hoppscotch**.
Keploy captures these requests to automatically generate test suites with test cases and data mocks.


#### Generate a Test Case

##### Post Requests

```bash
go build -o app
curl --request POST \
--url http://localhost:8080/authors \
--header 'content-type: application/json' \
--data '{"name":"Author Name"}'
```

### Lights, Camera, Record! 🎥
This API call generates a test case along with the required mocks. You can find the generated files in the Keploy directory, including `test-1.yml` and `mocks.yml`.

You can continue by making additional API calls to generate more test cases.

##### Get Requests

```bash
keploy record -c "./app"
curl --request GET --url http://localhost:8080/books
```

Keep an eye out for the `-c` flag! It's the command charm to run the app. Whether you're using `go run main.go` or the binary path like `./app`, it's your call.

If you're seeing logs that resemble the ones below, you're on the right track:
### 🏃‍♀️ Run the Tests

<img src="https://keploy-devrel.s3.us-west-2.amazonaws.com/Keploy_record_fastapi_golang.png" alt="Sample Keploy Record" width="100%" style={{ borderRadius: '5px' }} />
Time to run the testcases which were generated from the previous API calls..

```bash
keploy test -c "docker compose up" --container-name "fasthttp_app" --build-delay 50 --delay 10
```

Alright! With the app alive and kicking, let's weave some test cases. Making some API calls! Postman, Hoppscotch,
> The `--delay` flag specifies the time (in seconds) Keploy waits before running the test cases after starting the application.

or even the classic curl - take your pick!
When all is said and done, your test results should look a little something like this:

Time to create some users and books:
<img src="https://keploy-devrel.s3.us-west-2.amazonaws.com/keploy_replay_test_fastapi_golang.png" alt="Sample Keploy Replay" width="100%" style={{ borderRadius: '5px' }} />

### Generate traffic
Final thoughts? Dive deeper! Try different API calls, tweak the DB response in the `mocks.yml`, or fiddle with the request or response in `test-x.yml`. Run the tests again and see the magic unfold!

#### Post Requests
### Wrapping it up 🎉

Congrats on the journey so far! You've seen Keploy's power, flexed your coding muscles, and had a bit of fun too! Now, go out there and keep exploring, innovating, and creating! Remember, with the right tools and a sprinkle of fun, anything's possible.

Happy coding! ✨👩‍💻👨‍💻✨

<SectionDivider />

---

## Running App Locally on Linux/WSL 🐧

<ProductTier tiers="Open Source, Enterprise" offerings="Self-Hosted, Dedicated" />

This guide walks you through generating tests and DB mocks for a sample CRUD app built with FastHttp and Postgres using Keploy.

<InstallReminder />

### Clone the sample CRUD App 🧪

```bash
curl -X POST -H "Content-Type: application/json" -d '{"name":"Author Name"}' http://localhost:8080/authors
git clone https://github.com/keploy/samples-go.git && cd samples-go/fasthttp-postgres
go mod download
```

We'll be running our sample application right on Linux, but just to make things a bit more thrilling, We'll have our database (Postgres) running on Docker.

> Note: This application requires the following database environment variables
> to be set in order to run correctly.
>
> Create a .env file in this directory with the following values:
>
> ```env
> DB_HOST=localhost
> DB_PORT=5432
> DB_USER=postgres
> DB_PASSWORD=password
> DB_NAME=db
> ```

### Kickstart PostgresDB

Let's start your Postgres container:

```bash
docker compose up -d postgres

```
> The `-d` flag runs the PostgreSQL container in detached mode (in the background).

This would start your postgres container which will be running on docker.

### Lights, Camera, Record! 🎥

#### First, build the application:

```bash
curl -X POST -H "Content-Type: application/json" -d '{"title":"Book Title","author_id":1}' http://localhost:8080/books
go build -o app
```

#### Get Request
#### Capture the test case

```bash
curl -i http://localhost:8080/books
keploy record -c "./app"
```

The `-c` flag specifies the command used to run the application. You can use either `go run main.go` or the compiled binary (for example, `./app`).

If you're seeing logs that resemble the ones below, you're on the right track:

<img src="https://keploy-devrel.s3.us-west-2.amazonaws.com/Keploy_record_fastapi_golang.png" alt="Sample Keploy Record" width="100%" style={{ borderRadius: '5px' }} />

With the application running successfully, you can begin generating test cases by making API calls using tools such as **cURL**, **Postman**, or **Hoppscotch**.

#### Generate a Test Case

##### Post Requests

```bash
curl --request POST \
--url http://localhost:8080/authors \
--header 'content-type: application/json' \
--data '{"name":"Author Name"}'
```

Look at you go! With a few simple API calls, you've crafted test cases with mocks! Peek into the Keploy directory and behold the freshly minted `test-1.yml` and `mocks.yml`.
This API call generates a test case along with the required mocks. You can find the generated files in the Keploy directory, including `test-1.yml` and `mocks.yml`.

### 🏃‍♀️ Run the Tests!
You can continue by making additional API calls to generate more test cases.

Time to put it all to the test:
##### Get Requests

```bash
keploy test -c "./app" --delay 5
curl --request GET --url http://localhost:8080/books
```

> That `--delay` flag? Just a little pause (in seconds) to let your app catch its breath before the test cases start rolling in.

### 🏃‍♀️ Run the Tests

You are now ready to run the generated test cases.

```bash
keploy test -c "./app" --delay 10
```

When all is said and done, your test results should look a little something like this:

Expand All @@ -113,6 +214,8 @@ Final thoughts? Dive deeper! Try different API calls, tweak the DB response in t

### Wrapping it up 🎉

Congrats on the journey so far! You've seen Keploy's power, flexed your coding muscles, and had a bit of fun too! Now, go out there and keep exploring, innovating, and creating! Remember, with the right tools and a sprinkle of fun, anything's possible
Congrats on the journey so far! You've seen Keploy's power, flexed your coding muscles, and had a bit of fun too! Now, go out there and keep exploring, innovating, and creating! Remember, with the right tools and a sprinkle of fun, anything's possible.

Happy coding! ✨👩‍💻👨‍💻✨

Hope this helps you out, if you still have any questions, reach out to us .
Loading