-
Notifications
You must be signed in to change notification settings - Fork 126
beyond the UI #365
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
asaha-scottlogic
wants to merge
7
commits into
ScottLogic:gh-pages
Choose a base branch
from
asaha-scottlogic:asrut_blog
base: gh-pages
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
beyond the UI #365
Changes from 3 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
951feb9
new blog - beyond the UI - asrut_blog
asaha-scottlogic 43ae68f
Update 2025-09-26-beyond-ui.markdown
asaha-scottlogic 30cab54
Update 2025-09-26-beyond-ui.markdown
asaha-scottlogic 7fb255c
Update 2025-09-26-beyond-ui.markdown
asaha-scottlogic c646ca8
title name updated
asaha-scottlogic dce5769
revised version
asaha-scottlogic 56ad422
update to life like example in section 4
asaha-scottlogic File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,66 @@ | ||
| --- | ||
| title: Beyond the UI | ||
| date: 2025-09-25T00:00:00Z | ||
| categories: | ||
| - Tech | ||
| tags: | ||
| - SoftwareEngineering | ||
| - BackendTesting | ||
| - QualityAssurance | ||
| summary: This blog tells the story of building a new system to pull in important data from outside sources—without having access to the real APIs during development. It shows how API testing and mocking, especially using a handy tool called WireMock, helped the team test everything properly, spot issues early, and stay on track. If you're working in tech or just curious, it’s a great example of solving problems smartly when things aren’t quite ready yet. | ||
| author: asaha | ||
| --- | ||
|
|
||
| ## Beyond the UI: A Story of Data Ingestion, API Testing, and WireMock | ||
|
|
||
| ## 1. The Challenge Begins | ||
|
|
||
| Imagine you’ve just joined a fintech company as part of a team tasked with building a new system to ingest regulatory data from various external sources. The stakes are high: the data must be accurate, complete, and compliant with strict regulations. The project is ambitious, and the timeline is tight. | ||
|
|
||
| You quickly realize that the storage of this system is a set of APIs that will need to be called to carry data from outside organizations into your company’s secure storage. But there’s a problem: the real APIs you need to connect to aren’t ready yet. Some are still being built, others are unstable, and a few are simply inaccessible for testing. How do you test your own system’s ability to send the ingested data when the other side of the bridge doesn’t exist? | ||
|
|
||
| ## 2. Why API Testing Matters | ||
|
|
||
| As you dig deeper, you learn that API testing is not just a technical checkbox, it’s the foundation of reliable software. Unlike UI testing, which checks what users see and click, API testing goes behind the scenes, making sure the invisible data highways work flawlessly. It’s faster, more precise, and lets you catch bugs before they ever reach the user interface. | ||
|
|
||
| API testing means sending requests to your endpoints, checking the responses, and making sure everything works as expected—handling errors, processing data, and staying secure. | ||
|
|
||
| But with the real APIs missing, how do you even start? | ||
|
|
||
| ## 3. The Art of Mocking: Creating a Simulated World | ||
|
|
||
| This is where the story gets interesting. Your team introduces you to the concept of API mocking. Think of it as building a lifelike movie set: you create fake versions of the APIs, complete with realistic responses, so you can test your system as if the real thing were there. | ||
|
|
||
| Mocking lets you work in parallel frontend/backend teams, without having to wait for each other. You can simulate every scenario, from perfect data to the weirdest edge cases, and even inject errors or delays to see how your system reacts. It’s faster, cheaper, and gives you total control. | ||
|
|
||
| ## 4. Enter WireMock: The Hero Tool | ||
|
|
||
| To bring this simulated world to life, your team chooses WireMock, a powerful open-source tool that acts as a stand-in for real APIs. WireMock lets you define exactly how your mock APIs should behave: what requests they accept, what responses they return, and how they handle errors or slowdowns. | ||
|
|
||
| With WireMock, you can: | ||
|
|
||
| - Create stubs for every endpoint your system needs. | ||
| - Simulate successful data ingestion, error conditions, and even network timeouts. | ||
| - Test your system’s resilience, error handling, and data validation, without ever touching the real APIs. | ||
|
|
||
| ## 5. The Project in Action | ||
|
|
||
| Armed with WireMock, your team sets up mock endpoints. You configure WireMock to send realistic regulatory data to your mocked ingestion APIs, just like the real sources would. You test how your system handles valid data, invalid formats, missing fields, and unexpected errors. | ||
|
|
||
| You discover bugs early, before they become expensive problems. You validate that your system can handle anything thrown at it, from perfect data to chaos. You run tests quickly and repeatedly, confident that your results are consistent and reliable. | ||
|
|
||
| For example, you mock a `/api/ingest` endpoint that accepts regulatory data. You configure WireMock to return a `201 Created` response for valid data, a `400 Bad Request` for missing fields, and simulate a slow network by adding a delay for certain requests. You then run tests to check: | ||
|
|
||
| - Does your system correctly process valid data? | ||
| - Does it handle errors gracefully when data is incomplete? | ||
| - Does it retry or timeout when the network is slow? | ||
|
|
||
| WireMock becomes your safety net, letting you build and test with speed and confidence. When the real APIs finally become available, you’re ready, your system has already been battle tested. | ||
|
|
||
| ## 6. Lessons for Every IT Enthusiast | ||
|
|
||
| As the project wraps up, you realize you’ve learned something valuable. API testing and mocking aren’t just technical tricks, they’re essential strategies for building robust, scalable, and compliant systems. They let you move fast, catch problems early, and deliver quality software even when the pieces aren’t all in place. | ||
|
|
||
| WireMock, in particular, stands out as a hero tool, giving you the power to simulate, test, and validate your system in any scenario. | ||
|
|
||
| So, if you’re new to IT or software engineering, remember this story. Behind every great application is a world of invisible connections, and the smartest teams use API testing and mocking to make sure those connections are strong, reliable, and ready for anything. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.