API Standard SIG - 2023-07-27
Participants
Agenda
- Kickoff
- Metadata
- Descriptors
Materials
Notes
More detailed notes were taken in the presenter notes section of the slide deck. Please download the deck above to see those detailed notes. The notes below are a summary of recommendations and open questions.
The recommendations below reflect Stephen Fuqua 's takeaways from the conversation.
- Kickoff
- Use "Ed-Fi API" as the name of the (generic) interface, and products that are an implementation of the Ed-Fi API should have another name. Examples of product names: Ed-Fi ODS/API, Ed-Fi Meadowlark API.
- Metadata
- API Standards Version
- Unlikely that one API implementation would support multiple API Standard versions.
- No prospect, at this time for creating a v4 (this SIG's outcomes likely become revision 3.2)
- "v3" in the URL does not need to be standardized.
- Dependencies
- Open API
- Try to change swagger.json to Open API version 3, create SDK, and see how different it is from today's SDK to make sure nothing breaks.
- So long as the API itself hasn't changed, the older SDK and newer SDK ought to be compatible, even if the generated code is different.
- Do not standardize the Open API version
- Try to change swagger.json to Open API version 3, create SDK, and see how different it is from today's SDK to make sure nothing breaks.
- Read Only Properties
- Do not try to standardize underscore prefix for read-only properties in an Ed-Fi API
- Do ensure that the Swagger / Open API documents properly label properties as readonly
- Prefer being more strict about overposting: an Ed-Fi API should reject a POST or PUT request that contains properties that are not defined on the API model.
- If we say must then this would be a breaking change to the API Standard, making all current versions of the ODS/API incompatible.
- API Standards Version
- Descriptors
- Change the guidance about PUT/POST: An Ed-Fi API should support the Descriptors API definition for modifying descriptors, with an authorization model appropriate to the implementation needs.
- Do not remove any of the existing properties (codeValue, shortDescription, description, effectiveBeginDate, effectiveEndDate).
- Be more prescriptive about using human readable codeValues, not numbers or random strings.
- Consider removing the xyzDescriptorId values from ODS/API if possible, or document them as a could have property on Descriptors.
- Discourage allowing Descriptor natural key updates. - ODS-5418Getting issue details... STATUS
- Add _etag and _lastModifiedDate readonly properties to the definition.
Next meeting: 2023-08-24
Agenda:
- Query Support
- Searching: e.g. GET /ed-fi/studentSchoolAssociations?studentUniqueId=ABCXYZ
- Selectors
- Paging
- HTTP Status Codes
- Security
- Authentication
- Authorization
- Non-repudiation