Skip to content

Commit 6508afa

Browse files
Add icons
1 parent 01a6d8d commit 6508afa

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

README.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This repository provides a playground to safely experiment with and learn Azure
66

77
_If you are interested in APIM & Azure OpenAI integrations, please check out the excellent [AI Gateway](https://github.com/Azure-Samples/AI-Gateway) GitHub repository._
88

9-
## Objectives
9+
## 🎯 Objectives
1010

1111
1. Educate you on common APIM architectures we see across industries and customers.
1212
1. Empower you to safely experiment with APIM policies.
@@ -16,9 +16,9 @@ _Try it out, learn from it, apply it in your setups._
1616

1717
---
1818

19-
## Getting Started
19+
## 🚀 Getting Started
2020

21-
### Prerequisites
21+
### 📋 Prerequisites
2222

2323
These prerequisites apply broadly across all infrastructure and samples. If there are specific deviations, expect them to be noted there.
2424

@@ -29,7 +29,7 @@ These prerequisites apply broadly across all infrastructure and samples. If ther
2929
- [An Azure Subscription](https://azure.microsoft.com/free/) with Owner or Contributor+UserAccessAdministrator permissions. Execute [shared/jupyter/verify-az-account.ipynb](shared/jupyter/verify-az-account.ipynb) to verify.
3030
- [Sign in to Azure with Azure CLI](https://learn.microsoft.com/cli/azure/authenticate-azure-cli-interactively)
3131

32-
### Initialization
32+
### 🛠️ Initialization
3333

3434
Run through the following steps to create a Python virtual environment before doing anything else:
3535

@@ -43,15 +43,15 @@ Run through the following steps to create a Python virtual environment before do
4343

4444
The first time you run a Jupyter notebook, you'll be asked to install the Jupyter kernel package (ipykernel).
4545

46-
### List of Samples
46+
### 📁 List of Samples
4747

4848
| Sample Name | Description | Supported Infrastructure(s) |
4949
|:-----------------|:----------------------------------------------------------------------------|:-------------------------------------------|
5050
| [General](./samples/general/create.ipynb) | Basic demo of APIM sample setup and policy usage. | All infrastructures |
5151
| [Load Balancing](./samples/load-balancing/create.ipynb) | Priority and weighted load balancing across backends. | apim-aca, afd-apim (with ACA) |
5252
| [AuthX](./samples/authx/create.ipynb) | Authentication and role-based authorization in a mock HR API. | All infrastructures |
5353

54-
### Running a Sample
54+
### ▶️ Running a Sample
5555

5656
1. Locate the specific sample's `create.ipynb` file and adjust the parameters under the `User-defined Parameters` header as you see fit.
5757
1. Ensure that the specified infrastructure already exists in your subscription. If not, proceed to the desired infrastructure folder and execute its `create.ipynb` file. Wait until this completes before continuing.
@@ -61,9 +61,9 @@ Now that infrastructure and sample have been stood up, you can experiment with t
6161

6262
---
6363

64-
## Repo Structure
64+
## 📂 Repo Structure
6565

66-
### High-level
66+
### 🦅 High-level
6767

6868
- All _samples_ can be found in the `samples` folder. Samples showcase functionality and provide a baseline for your experimentation.
6969
- All _infrastructures_ can be found in the `infrastructure` folder. They provide the architectural underpinnings.
@@ -73,14 +73,14 @@ Now that infrastructure and sample have been stood up, you can experiment with t
7373
- Reusable _APIM policies_ are found in the `apim-policies` folder.
7474
- Reusable Jupyter notebooks are found in the `jupyter` folder.
7575

76-
### Sample Setup
76+
### ⚙️ Sample Setup
7777

7878
- Each sample uses an architecture infrastructure. This keeps the samples free of almost all setup.
7979
- Each infrastructure and sample features a `create.ipynb` for creation (and running) of the sample setup and a `main.bicep` file for IaC configuration.
8080
- Each infrastructure contains a `clean-up.ipynb` file to tear down everything in the infrastructure and its resource group. This reduces your Azure cost.
8181
- Samples (and infrastructures) may contain additional files specific to their use cases.
8282

83-
### Infrastructure Architectures
83+
### 🏛️ Infrastructure Architectures
8484

8585
We provide several common architectural approaches to integrating APIM into your Azure ecosystem. While these are high-fidelity setups, they are not production-ready. Please refer to the [Azure API Management landing zone accelerator](https://learn.microsoft.com/azure/cloud-adoption-framework/scenarios/app-platform/api-management/landing-zone-accelerator) for up-to-date production setups.
8686

@@ -95,15 +95,15 @@ We provide several common architectural approaches to integrating APIM into your
9595

9696
---
9797

98-
## Development
98+
## 🛠️ Development
9999

100100
As you work with this repo, you will likely want to make your own customizations. There's little you need to know to be successful.
101101

102102
The repo uses the bicep linter and has rules defined in `bicepconfig.json`. See the [bicep linter documentation](https://learn.microsoft.com/azure/azure-resource-manager/bicep/bicep-config-linter) for details.
103103

104104
**We welcome contributions!** Please consider forking the repo and creating issues and pull requests to share your samples. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details. Thank you!
105105

106-
### Adding a Sample
106+
### Adding a Sample
107107

108108
Adding a new sample is relatively straight-forward.
109109

@@ -115,11 +115,11 @@ Adding a new sample is relatively straight-forward.
115115
1. Test the sample with all supported infrastructures.
116116
1. Create a pull request for merge.
117117

118-
### Testing & Code Coverage
118+
### 🧪 Testing & Code Coverage
119119

120120
Python modules in `shared/python` are covered by comprehensive unit tests located in `tests/python`. All tests use [pytest](https://docs.pytest.org/) and leverage modern pytest features, including custom markers for unit and HTTP tests.
121121

122-
#### Running Tests Locally
122+
#### 🚀 Running Tests Locally
123123

124124
- **PowerShell (Windows):**
125125
- Run all tests with coverage: `./tests/python/run_tests.ps1`
@@ -136,26 +136,26 @@ You can also run tests manually and see details in the console:
136136
pytest -v --cov=shared/python --cov-report=html:tests/python/htmlcov --cov-report=term tests/python
137137
```
138138

139-
#### Viewing Coverage Reports
139+
#### 📊 Viewing Coverage Reports
140140

141141
After running tests, open `tests/python/htmlcov/index.html` in your browser to view detailed coverage information.
142142

143-
#### Pytest Markers
143+
#### 🏷️ Pytest Markers
144144

145145
- `@pytest.mark.unit` — marks a unit test
146146
- `@pytest.mark.http` — marks a test involving HTTP/mocking
147147

148148
Markers are registered in `pytest.ini` to avoid warnings.
149149

150-
#### Continuous Integration (CI)
150+
#### Continuous Integration (CI)
151151

152152
On every push or pull request, GitHub Actions will:
153153
- Install dependencies
154154
- Run all Python tests in `tests/python` with coverage
155155
- Store the `.coverage` file in `tests/python`
156156
- Upload the HTML coverage report as a workflow artifact for download
157157

158-
#### Additional Notes
158+
#### 📝 Additional Notes
159159

160160
- The `.gitignore` is configured to exclude coverage output and artifacts.
161161
- All test and coverage features work both locally and in CI.
@@ -164,13 +164,13 @@ For more details on pytest usage, see the [pytest documentation](https://docs.py
164164

165165
---
166166

167-
## Supporting Resources
167+
## 📚 Supporting Resources
168168

169169
The APIM team maintains an [APIM policy snippets repo](https://github.com/Azure/api-management-policy-snippets) with use cases we have seen. They are not immediately executable samples and require integrations such as in this repo.
170170

171171
---
172172

173-
## Acknowledgements
173+
## 🙏 Acknowledgements
174174

175175
This project has its roots in work done by [Alex Vieira](https://github.com/vieiraae) on the excellent Azure API Management [AI Gateway](https://github.com/Azure-Samples/AI-Gateway) GitHub repository. Much of the structure is similar and its reuse resulted in significant time savings. Thank you, Alex!
176176

0 commit comments

Comments
 (0)