Skip to content
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

Designing and maintaining an API standard #417

Open
wants to merge 17 commits into
base: main
Choose a base branch
from

Conversation

aaronrussellHO
Copy link
Contributor

Is this pull request a content or a code change? (Please fill in the relevant section and delete the other)

Code change

I can confirm:

Accessibility considerations

or

  • This change might impact accessibility, automated aXe tests cover the impact

or

  • This change might impact accessibility and is not covered by automated aXe tests - manual testing has been performed
    (If the change might impact accessibility then please add some further information here)

Content change

I can confirm:

  • Content does not include any code or configuration changes (excluding frontmatter information)
  • Content meets the content standards
    e.g. Writing a principle and Writing a standard
  • Content is suitable to open source, i.e.:
    • Content does not relate to unreleased gov policy
    • Content does not refer to anti-fraud mechanisms
    • Content does not include sensitive business logic
  • Last updated date for content is correct

@aaronrussellHO aaronrussellHO requested a review from a team as a code owner May 7, 2024 08:59
@aaronrussellHO aaronrussellHO changed the title WIP: Designing and maintaining an API standard Designing and maintaining an API standard Oct 14, 2024
Comment on lines +20 to +22
---

---
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We expect that there should be an overarching description for the standard here. If you are happy that the rest of the standard is largely nailed down then you can get this written in (if you are still looking to solidify other parts then it can wait).
https://engineering.homeoffice.gov.uk/standards/writing-a-standard/


### You MUST use appropriate nouns for resource names

Your API resources must follow RESTful resource naming standards as outlined on the restful API [resource naming page](https://restfulapi.net/resource-naming/).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we expect people developing other types of API (e.g. GraphQL) to follow the same naming convention? If so then I would make that clear


Knowing how your API scales helps to make sure your API is resilient, can handle peaks of traffic.

Often using stateless approach to designing an API can help horizontally scale an API. Using techniques such as asynchronous code, multithreading and an event driven approach can all help scale your API.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence could be tidied up a little


### You MUST use an API Specification

Using an API Specification will help define your API endpoints, support is wide, with a wide community using it. It helps the team work to the same standards, and it can generate documentation when needed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Using an API Specification will help define your API endpoints, support is wide, with a wide community using it. It helps the team work to the same standards, and it can generate documentation when needed.
Using an API Specification will help define your API endpoints, support is wide, with a wide community using it.

Not quite sure what is being said here?


## Requirement(s)

- [You MUST include a form of versioning to your API](#you-must-include-a-form-of-versioning-to-your-api)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth testing these links work somewhere, I can't remember how closely the anchor link needs to match the actual heading in the page below

- [You MUST consider scalability of your API](#you-must-consider-scalability-of-your-api)
- [You MUST use an API Specification](#you-must-use-an-api-specification)

### You MUST include a form of versioning to your API and consider how you may deprecate a version
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would consider whether the point on deprecation would be better in the description of the requirement, would shorten the heading, and could elaborate on it some more

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
content Software design Relates to SD guild content standard
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants