Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 1 addition & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ jobs:
runs-on: ubuntu-22.04
strategy:
matrix:
# Minimum supported and maximum available.
example: [ quarkus ]
example: [ express, quarkus ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
Expand Down
2 changes: 2 additions & 0 deletions examples/express/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules/
generated/
17 changes: 17 additions & 0 deletions examples/express/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Express example

Dit project gebruikt Express: <https://expressjs.com/>, een JavaScript framework waarmee onder andere API's kunnen worden gebruikt.

Om het project te bouwen en een `openapi.json` te genereren, run het volgende:

```shell script
npm ci
node src/server.js
# In een ander terminal tab, omdat de server nog draait
curl --silent http://localhost:8080/openapi.json > generated/openapi.json
```

Dit download een `generated/openapi.json` op basis van de definities in [`src/server.js`](src/server.js).
Daar kun je de verscheidene middleware calls bekijken die gebruikt worden om API's te documenteren.

Met deze middleware calls voldoet het example aan alle regels van de API Design Rules.
42 changes: 42 additions & 0 deletions examples/express/build-and-check-project.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/sh
CURRENT_DIRECTORY=$(dirname "$0")

cd $CURRENT_DIRECTORY

# Installeer benodigde dependencies
npm ci

# Start the server als een background process
node src/server.js &
SERVER_PID=$!

mkdir -p generated/
rm generated/openapi.json 2> /dev/null

# Haal de gegenereerde openapi.json op. Omdat de server nog
# moet opstarten slapen we 100 ms tussen elke call, totdat we
# een succesvolle response terug krijgen.
CURL_EXIT_CODE=1
while [ $CURL_EXIT_CODE -ne 0 ]
do
sleep 0.1
# Check of de server nog steeds draait. Als dat niet meer
# zo is, stop dan onmiddelijk met checken en downloaden van
# het openapi.json
ps --pid $SERVER_PID 1> /dev/null
PROCESS_EXISTS=$(echo $?)
if [ $PROCESS_EXISTS -ne 0 ]
then
echo "Server has crashed. See above terminal output for more information"
exit 1
fi
curl --silent http://localhost:8080/openapi.json > generated/openapi.json
CURL_EXIT_CODE=$(echo $?)
done

# Stop het server background process, zonder de output naar de
# terminal te printen
kill $SERVER_PID
wait $SERVER_PID 2>/dev/null

../run-spectral-linter.sh $(realpath generated/openapi.json)
Loading