/
2015.02.05 Course APIs

2015.02.05 Course APIs

Clinton, Carson, Brandon, Nimisha, Dave O, Miki, Peter, Piotr, Ned, Cale, Ed, Jim, Vishal, Matt

Deltas from last time:

  • stripped out all the content APIs
  • structure is a json object mapping ids to block structure data, children is a list of ids
    • why isn't it hierarchical?
      • flat is more application-agnostic
      • tree might not be general enough, if the course is a dag.
      • even orphans can be listed with a flat structure.
  • authentication hasn't been discussed
    • dedx is moving auth components to a separate repo
  • authorization
    • anyone can look at any course
    • the api will be publicly exposed
    • don't mobile app users have an oauth token?
    • clinton will be dealing with permissions.
    • MUST: be sure an oauth2 token isn't enough to access all courses.

The internal API (a method on modulestore returning JSON) is needed, but isn't meant for wide use

  • MUST: Add to the docstring, explaining all of the downsides, and the appropriate use of this method.

Content versions?

  • This only provides the published version.
    • For analytics, they will need to report on out-of-date content, so versioning must be accommodated somehow.
    • versions have to be exposed throughout the system.

Detail questions:

  • The blocks are in the "blocks" object under their usage key, and then have the key as "id" in the block itself.
  • The blocks have "type", what about "category"?
    • "category" is old, we prefer "blocktype"
  • Why is depth=2 included?
    • oversight, that is going away.
  • Will this be in Birch?
    • no.

Everyone is OK with this going forward.

Course API Unification

  • Not enough detail to code to yet.
  • Dave was trying to flesh out a scheme for layering APIs
  • Content-based vs Discovery-based: did that make sense?
  • Dave: what would be sufficient detail to make a decision?
    • Where do we plugin our API?
    • Guidelines about where an API should live.
    • Everyone wants to know what the whole namespace looks like,
    • and what the rules are for adding to the namespace.
      • for example, "this part of the namespace needs to be highly performant"
    • Guiding principles for API in general.
      • There's a doc growing these guidelines
      • deliverable by the end of this month.
      • bring that to arch council
  • Deployment? Resident in LMS always?
    • API/process is not 1-1
    • Moving more toward a model of process components that host multiple APIs
  • Discovery layer?
    • Yes, we need to think about service discovery.
    • People have floated ideas, but no one has gotten to the point of a proposal.
    • We will favor having small APIs
    • Central discovery will be important, but we don't know enough yet.
    • There will be a number of deployment use cases to solve
      • token storage
      • rate limiting
      • monitoring
  • What does Dave want other people to think about?

Related content

2015.07.01 Course Blocks and Navigation API
2015.07.01 Course Blocks and Navigation API
More like this
Course Blocks API
More like this
[BD-03] Status Notes
[BD-03] Status Notes
More like this
[BD-03] Archived Meeting Notes
[BD-03] Archived Meeting Notes
More like this
Code Review Plan
Code Review Plan
More like this
Completion API
More like this