You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/api-playbook/04-Governance/API Documentation/swagger_documentation.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ Providing a mock API and API blueprints will remove this blocker as it will give
60
60
61
61
## SwaggerHub Standards:
62
62
63
-
We utilise two of SwaggerHub's functions to document the status of our APIs: **tagging API environments** and **publishing API specifications**. These allow us to track whether an API is active and what environments it is available in. These also automatically sync with our [Developer Hub](https://developer-api.hackney.gov.uk/). To see more about the Developer Hub, please refer to the [relevant page](/developer_hub).
63
+
We utilise two of SwaggerHub's functions to document the status of our APIs: **tagging API environments** and **publishing API specifications**. These allow us to track whether an API is active and what environments it is available in. These also automatically sync with our [Developer Hub](https://developer-api.hackney.gov.uk/). To see more about the Developer Hub, please refer to the [relevant page](../../developer_hub).
Copy file name to clipboardExpand all lines: docs/api-playbook/04-Governance/developer_onboarding.md
+15-14Lines changed: 15 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ sidebar_position: 2
7
7
### Proposing changes
8
8
We love innovation and are always open to learning, iterating and improving. To suggest improvements and changes to our existing standards and tech stack, please use our technical architecture, frontend and data communities of practice.
9
9
10
-
- Our preferred BE stack is documented [here](/preferred_tech_stack.md).
10
+
- Our preferred BE stack is documented [here](../../Development%20Lifecycle/How%20to%20build%20an%20API/Preferred%20tech%20stack/).
11
11
12
12
### Reusable components catalogue
13
13
Before you commence the development of a new API, micro-frontend or NuGet shared package, please refer to our [Developer Hub](https://developer-api.hackney.gov.uk/), where you can find information about available reusable components and APIs available for reuse.
@@ -18,19 +18,19 @@ Before you commence the development of a new API, micro-frontend or NuGet shared
18
18
All technical members of a project team must familiarise themselves with [Hackney’s development standards](https://playbook.hackney.gov.uk/ways-of-working/), which follow the Twelve Factor Application methodology. Those define the high level principles to follow when developing a digital product.
19
19
Playbooks
20
20
21
-
#### What are they?
21
+
#### What are they?
22
22
23
23
At Hackney, we use playbooks to define the standards and approaches to use when building front end and back end services. The playbooks include specific information about the architecture, technology and practices that all services must follow in order to be compliant for any service development. They are intended for easy developer onboarding and provide all information required for reusable and consistent product development.
24
24
25
-
#### What do we use them for?
25
+
#### What do we use them for?
26
26
27
27
We use playbooks to provide guidance of the standards and ways to implement to ensure we are building compliant products. The standards are in place in order to help us achieve our aim of delivering reusable, consistent, resilient, scalable and secure services. Ultimately, our goal is to provide our residents with better and uniform experience through more performant and reliable applications, increased speed of development and good future maintainability so we can support our digital services even when project team members move on.
28
28
29
-
#### Technical assessments:
29
+
#### Technical assessments:
30
30
31
31
Hackney’s playbooks reflect the standards and quality of technical implementation that digital services should follow and will be assessed against to be accepted into service. We do understand that sometimes there are use cases, which will require a different approach and we are always open to suggestions for improvements. Any deviations or proposals for changes must be documented in the form of an Architecture Decision Record ( ADR ) and presented at a community of practice to promote collaboration and consistency.
32
32
API and Backend services Playbook
33
-
https://playbook.hackney.gov.uk/API-Playbook/
33
+
https://playbook.hackney.gov.uk/API-Playbook/
34
34
35
35
You can find information about:
36
36
- API and Listeners Boilerplate
@@ -45,7 +45,7 @@ You can find information about:
45
45
- Security practices for APIs
46
46
47
47
### Micro frontends (MFE) Playbook
48
-
https://playbook.hackney.gov.uk/micro-frontends/
48
+
https://playbook.hackney.gov.uk/micro-frontends/
49
49
50
50
You can find information about:
51
51
- MFE cli and boilerplate
@@ -58,7 +58,7 @@ You can find information about:
58
58
59
59
#### Technical architecture
60
60
61
-
**When?** Every Wednesday, 16:00-17:00.
61
+
**When?** Every Wednesday, 16:00-17:00.
62
62
63
63
**What is it?** A platform to discuss proposals for changes to technical and architectural approaches and tooling, as well as a place to suggest new technical implementations.
64
64
@@ -81,14 +81,15 @@ You can find information about:
81
81
82
82
**When?** Every Thursday, 15:00 - 16:00.
83
83
84
-
**What is it?** A platform to discuss frontend specific tooling and approaches, micro-frontend architecture and reusability and suggestions for changes.
84
+
**What is it?** A platform to discuss frontend specific tooling and approaches, micro-frontend architecture and reusability and suggestions for changes.
85
85
86
86
**How can I make use of it?** Please join the #frontend slack channel and drop a message there with a topic you wish to discuss at the meetup. The meetup is open to everyone so feel free to forward the calendar invitation to anyone who might be interested.
87
87
88
88
### Preferred technical stack
89
-
Our preferred technical stack for API and backend services (e.g. Listeners) implementation can be found [here](/preferred_tech_stack.md).
89
+
Our preferred technical stack for API and backend services (e.g. Listeners) implementation can be found [here](- Our preferred BE stack is documented [here](../../Development%20Lifecycle/How%20to%20build%20an%20API/Preferred%20tech%20stack/).
90
+
).
90
91
91
-
To achieve consistency and future maintainability, it’s important to build services following the preferred tech stack. If a use case requires a different approach, please discuss that with one of the Senior Engineers for awareness.
92
+
To achieve consistency and future maintainability, it’s important to build services following the preferred tech stack. If a use case requires a different approach, please discuss that with one of the Senior Engineers for awareness.
92
93
93
94
To set up your developer workstation, please refer to the Workstation Setup Guide [here](https://docs.google.com/document/d/1PaID4hmDJPzW2onOaKytVL3qrTB_HyYW3_EWyRmWC48/edit?usp=sharing)
94
95
@@ -105,13 +106,13 @@ All APIs must be built in a reusable manner, unless they implement a very specif
105
106
We use [SwaggerHub](https://app.swaggerhub.com/organizations/Hackney) to document our APIs and their respective data contracts. All new and existing APIs must have corresponding SwaggerHub documentation. It is the responsibility of the engineers who amend existing APIs to also update the documentation so it is kept up-to-date.
106
107
- If you or your team is building new APIs or making changes to existing API endpoints, please request SwaggerHub access so you can amend the specifications documented to ensure they are always up-to-date.
107
108
108
-
In addition, we also have [API specifications](https://playbook.hackney.gov.uk/api-specifications/), which capture a summary of the user needs and any other findings related to an API.
109
-
- A new API specification must be produced for all new APIs.
109
+
In addition, we also have [API specifications](https://playbook.hackney.gov.uk/api-specifications/), which capture a summary of the user needs and any other findings related to an API.
110
+
- A new API specification must be produced for all new APIs.
110
111
- The API specification document should link off to the SwaggerHub page that outlines the API contract.
111
112
- The API specification should be updated when the API introduces new endpoints or changes to existing functionality.
112
113
113
114
### Software development DevOps practices
114
-
Our DevOps practices followed as part of the Software Development Lifecycle are documented [here](/deployment_pipeline.md).
115
+
Our DevOps practices followed as part of the Software Development Lifecycle are documented [here](../../DevOps%20practices/deployment_pipeline/).
115
116
116
117
You will find information about:
117
118
- Branching strategies
@@ -125,7 +126,7 @@ You will find information about:
125
126
[Production deployment - Live service infrastructure requirement](https://docs.google.com/document/d/1UrT6u4j8AlyPf-aD_E4c30uH27MJgIJoVxYR9kKGzFw/edit)
126
127
127
128
### APIs
128
-
To assess the API compliance prior to deploying it, please refer to [APIs compliance checklist](/docs/api_compliance.md).
129
+
To assess the API compliance prior to deploying it, please refer to [APIs compliance checklist](../api_compliance).
129
130
130
131
### Asking a question
131
132
For any questions and suggestions regarding our tech stack, tools, processes and practices, please contact us via:
Copy file name to clipboardExpand all lines: docs/api-playbook/05-Development Lifecycle/01-Designing your API/http.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -218,7 +218,7 @@ Below we list the most commonly used and best understood HTTP status codes, cons
218
218
| 405 | Method Not Allowed - the method is not supported | All |
219
219
| 406 | Not Acceptable - resource can only generate content not acceptable according to the Accept headers sent in the request | All |
220
220
| 415 | Unsupported Media Type - e.g. clients sends request body without content type | POST, PUT, DELETE, PATCH |
221
-
| 429 | Too many requests - the client does not consider rate limiting and sent too many requests. See [MUST Use Code 429 with Headers for Rate Limits](#153). | All |
221
+
| 429 | Too many requests - the client does not consider rate limiting and sent too many requests. | All |
Copy file name to clipboardExpand all lines: docs/api-playbook/05-Development Lifecycle/03-Implementing HTTP endpoints/GET endpoint/get_dynamodb.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ GET requests are used to **read** either a single or a collection resource.
9
9
10
10
- GET requests must NOT have a request body payload;
11
11
12
-
**Note:** GET requests on collection resources should provide sufficient filter and [pagination](pagination.md) mechanisms;
12
+
**Note:** GET requests on collection resources should provide sufficient filter and [pagination](../../../Designing%20your%20API/pagination) mechanisms;
13
13
14
14
[Here is an example PR to show how to build an GET endpoint using DynamoDB](https://github.com/LBHackney-IT/notes-api/pull/8/files)
Copy file name to clipboardExpand all lines: docs/api-playbook/05-Development Lifecycle/03-Implementing HTTP endpoints/GET endpoint/get_opensearch.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ GET requests are used to **read** either a single or a collection resource.
10
10
11
11
- GET requests must NOT have a request body payload;
12
12
13
-
**Note:** GET requests on collection resources should provide sufficient filter and [pagination](pagination.md) mechanisms;
13
+
**Note:** GET requests on collection resources should provide sufficient filter and [pagination](../../../Designing%20your%20API/pagination) mechanisms;
14
14
15
15
[Here is an example PR to show how to build a search endpoint using OpenSearch (Also known as ElasticSearch)](https://github.com/LBHackney-IT/housing-search-api/pull/154)
Copy file name to clipboardExpand all lines: docs/api-playbook/05-Development Lifecycle/03-Implementing HTTP endpoints/GET endpoint/get_postgres.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ GET requests are used to **read** either a single or a collection resource.
9
9
10
10
- GET requests must NOT have a request body payload;
11
11
12
-
**Note:** GET requests on collection resources should provide sufficient filter and [pagination](pagination.md) mechanisms;
12
+
**Note:** GET requests on collection resources should provide sufficient filter and [pagination](../../../Designing%20your%20API/pagination) mechanisms;
13
13
14
14
We have created a video that gives developers a good understanding of how we build API Endpoints using Postgres from beginning to end, following best practices.
Copy file name to clipboardExpand all lines: docs/api-playbook/05-Development Lifecycle/04-Listeners/listener_intro.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## Introduction
4
4
5
-
[Events](/serverless_lambda#events) occur all the time throughout any application, they may for example be a database or file being updated, a timer firing or a message being sent,
5
+
[Events](../../How%20to%20build%20an%20API/Preferred%20tech%20stack/serverless_lambda#events) occur all the time throughout any application, they may for example be a database or file being updated, a timer firing or a message being sent,
6
6
and sometimes additional processing is required elsewhere in the system as a result of them happening.
7
7
8
8
These events can be used to trigger AWS Lambda functions to perform the necessary processing.
Copy file name to clipboardExpand all lines: docs/api-playbook/06-Testing/tdd.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ _A better test name that describes what is being tested_
27
27
### Unit Tests:
28
28
29
29
Unit tests should provide good coverage of the various scenarios that may be encountered; from the main success scenario to any exceptionals or edge cases.
0 commit comments