Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Identification

Are you responding as a...

(Choice)

  • Vendor who accesses Ed-Fi API instances?
  • Host who manages Ed-Fi API instances?
  • Education Agency who relies on an Ed-Fi API?

Feature Usage

Which of these ODS/API features do you use?

(Likert scale with options: not used, some usage, critical usage)

  • Profiles - for restricting data access
    • Both read and write
  • Profiles - for performance benefit
    • There are fewer attributes in the GET request
  • Extensions
  • Change Queries
  • link  in the HTTP response
  • PUT requests - instead of DELETE & POST
    • (warning) Some organizations choose to DELETE  and then re-POST modified records, instead of using PUT. Commonly this is to avoid extra coding logic around disallowed natural key updates (e.g. no updating a StudentUniqueId ).
  • ETags and If-Match  header
  • Data model information list at /api
  • XSD endpoint
  • Dependencies endpoint
  • Enrollment Composite
  • Identity Pass-through
  • Location header - storing the ID

Strictness

How important are the following to you as requirements for an Ed-Fi API?

(Likert scale with options: must not, could, should, must)

  • Strict JSON payload validation
    • e.g. reject extra properties
    • Why? Someone might have a typo on an optional property and never realize because it was accepted but thrown away
  • Require a DateTime to include time
    • Most validators require the time component, though some systems will infer it as midnight
  • Store time in UTC
    • Otherwise, whose timezone is it?
  • Case sensitive resources names / attributes
    • {{ /ed-fi/classPeriods}} is different from /ed-fi/ClAsPeriODs 
    • ?schoolId=1234  is a valid query but ?sCHOoLid=1234  is not
    • Should not be (or not only) dependent on database technology
  • Case sensitive string values
    • ?firstName=John and ?firstName=JOHN  return different results
    • This is the default in PostgreSQL, but not in SQL Server
    • Modifying the database setting is harder than one would think

Proposals

How important are the following to you as requirements for an Ed-Fi API?

(Likert scale with options: must not, could, should, must)

  • Declare case sensitivity in metadata
    • New idea for future releases
  • Delete by natural key
    • e.g. instead of DELETE .. /ed-fi/students/abcd1234xyz then DELETE ../ed-fi/students/studentUniqueId=1234
    • Particularly useful for organizations who are not storing the Ed-Fi unique identifier (abcd1234xyz in the example above).
  • No labels