SlideShare una empresa de Scribd logo
1 de 30
Kirsten Jones, Technical Leader, Cisco Systems




                                          @synedra
                                          http://www.princesspolymath.com
    Building a resource map
     Usability concerns
     Interface design choices
     Examples: Socialtext, Netflix, LinkedIn




Kirsten Jones        http://www.princesspolymath.com   @synedra
    APIs must be usable
     Consistency
     How do you want applications to behave?
     What makes sense for your data?
     Reduce errors, increase success




Kirsten Jones      http://www.princesspolymath.com   @synedra
    Resource map
     Support reasonable cross-referenced
      resources
     Expandability of resources
     Explicit declaration of resource structure
     Hyperlinking related resources



Kirsten Jones        http://www.princesspolymath.com   @synedra
    Cover three different APIs with different
      approaches
     Describe the schema for the API
     Describe interface choices made
     Pros/Cons of approach




Kirsten Jones        http://www.princesspolymath.com   @synedra
    Socialtext
       Simple wiki API, very basic implementation
     Netflix
       More complicated data space
       Some expansion to reduce calls
       Related resource hyperlinks
     LinkedIn
       Much more complicated
       Powerful query language

Kirsten Jones         http://www.princesspolymath.com   @synedra
    Basic wiki software
     Users, workspaces, pages – now signals and
      themes
     REST API designed 7 years ago for 3rd parties
      and to run site widgets
     Design considerations – consistency,
      usability, simplicity


Kirsten Jones        http://www.princesspolymath.com   @synedra
    All resources under /data
     Collections
       /nouns gives a list of resource type ‘noun’
        ▪ Ex: /data/workspaces
     Entities
       /nouns/nounid gives a resource
        ▪ Ex: /data/workspaces/12
     Sorting, filtering, ordering with parameters

Kirsten Jones          http://www.princesspolymath.com   @synedra
    Limiting scope for this discussion
     Workspaces, pages, tags
     /data/workspaces
     /data/workspaces/:wsid
     /data/workspaces/:wsid/pages
     /data/workspaces/:wsid/pages/:pageid
     /data/workspaces/:wsid/pages/:pageid/tags
     /data/workspaces/:wsid/tags/:tagid/pages

Kirsten Jones       http://www.princesspolymath.com   @synedra
    Pros
       Consistent mapping of (fairly simple) domain
       Can reach resources multiple ways
       Browsable API allows for discoverability


     Cons
       Requires many more calls
       No URL links to related resources

Kirsten Jones          http://www.princesspolymath.com   @synedra
    Movie catalog information
     Movies and people associated with them
     Access to user queues and recommendations
     Information about user’s relationship to
      movie (watched, rated)




Kirsten Jones      http://www.princesspolymath.com   @synedra
    Devices (Xbox, TVs)
     Third party developers
     Minimize traffic for heavy users
     Monetized use cases well understood
     Filtering, ordering, searching




Kirsten Jones      http://www.princesspolymath.com   @synedra
    /catalog/titles
       Movies, TV shows
     /catalog/people
       Actors, directors
     /users
       Queue management, recommendations




Kirsten Jones           http://www.princesspolymath.com   @synedra
    List context
       Returned for searches, lists, recommendations,
        similar movies
       minimal info – id, box art, release year, name,
        rating
       Hyperlinks to related entities
       Expansion available to get more info
     Details context
       All available title information
Kirsten Jones           http://www.princesspolymath.com   @synedra
<catalog_title>
  <id>http://api-public.netflix.com/catalog/titles/series/70023522/seasons/70023522 </id>
  <title short="The Office: Season 1" regular="The Office: Season 1"/>
  <box_art small="http://alien2.netflix.com/us/boxshots/tiny/70023522.jpg"
           medium="http://alien2.netflix.com/us/boxshots/small/70023522.jpg"
           large="http://alien2.netflix.com/us/boxshots/large/70023522.jpg"/>
  <link href=
   "http://api-public.netflix.com/catalog/titles/series/70023522/seasons/70023522/synopsis"
   rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"/>
  <release_year>2005</release_year>
  <category scheme="http://api-public.netflix.com/categories/tv_ratings" label="TV-14"/>
  <runtime>8700</runtime>
 …
 </catalog_title>




Kirsten Jones                     http://www.princesspolymath.com                       @synedra
<catalog_title>
  <id>http://api-public.netflix.com/catalog/titles/series/70023522/seasons/70023522 </id>
  <title short="The Office: Season 1" regular="The Office: Season 1"/>
  <box_art small="http://alien2.netflix.com/us/boxshots/tiny/70023522.jpg"
           medium="http://alien2.netflix.com/us/boxshots/small/70023522.jpg"
           large="http://alien2.netflix.com/us/boxshots/large/70023522.jpg"/>
  <link href=
   "http://api-public.netflix.com/catalog/titles/series/70023522/seasons/70023522/synopsis"
   rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"/>
  <release_year>2005</release_year>
  <category scheme="http://api-public.netflix.com/categories/tv_ratings" label="TV-14"/>
  <runtime>8700</runtime>
 …
 </catalog_title>




Kirsten Jones                   http://www.princesspolymath.com                     @synedra
    Used for related information
     Can be used to inform ‘expand’ choices
     Can be used to pull additional resources
     Prevent developer mistakes (manually
      creating resource URL)




Kirsten Jones        http://www.princesspolymath.com   @synedra
    Search
       /catalog/titles?term=cruise
     Autocomplete
       Very fast responses
       Even more limited data (name, ID)
       /catalog/titles/autocomplete?term=Snakes
     Expand
       Allows applications to retrieve details in list
       /catalog/?term=cruise&expand=cast,directors

Kirsten Jones          http://www.princesspolymath.com    @synedra
    Pros
       Great for very specific use cases (devices)
       Provides URLs as identifiers and hyperlinks
       Some expansion to prevent spamming
     Cons
       Not fantastic for exploration/innovation
       No way to reduce information retrieved
       No way to dig deeper into tree

Kirsten Jones          http://www.princesspolymath.com   @synedra
    Social Network
     Deeply Interlinked
     Rich Information
     Many potential use cases




Kirsten Jones       http://www.princesspolymath.com   @synedra
    Support many use cases
     Provide control over response size
     Limit overall call volume
     Exercise consistency




Kirsten Jones       http://www.princesspolymath.com   @synedra
    /people
       Mother of all resources (to excess)
       Contains expandable information about profile
          data
     /groups
     /companies
     /jobs
     Each has the ability to expand to include
      information about other top level resources
Kirsten Jones          http://www.princesspolymath.com   @synedra
    No hyperlinks
       Being able to drill down makes this less of an issue
     Throttles
       Everybody wants user databases – fraud
     Very expressive query language
       Developers get exactly the response they need
       LinkedIn can analyze queries to optimize
       Reduces number of queries

Kirsten Jones          http://www.princesspolymath.com   @synedra
    Not very RESTful, but highly effective
     Allows developers to specify exactly what
      data they want, and drill down
       All the user’s connections, the schools they went
        to, their company name and company’s industry
       Specifying fields means only the data you want –
        the default is not guaranteed to be consistent



Kirsten Jones          http://www.princesspolymath.com   @synedra
    /people/~
       User’s default profile
       Usually id, first name, last name, headline
     /people/~:(id, first-name,last-name,headline)
       Same request, guaranteed to have the right info
     /people/~:(id,first-name,picture-profile-
      url,educations:(school-
      name),positions:(company:(name)))

Kirsten Jones          http://www.princesspolymath.com   @synedra
    /people/~/connections:(id,first-name,picture-
      profile-url,educations:(school-
      name),positions:(company:(name,industry)))

     /people-search:(people:(id,first-name,last-
      name,picture-url,headline),num-
      results)?first-name=Clair


Kirsten Jones        http://www.princesspolymath.com   @synedra
    Facets allow flexible control of queries
     Can be returned for a user’s network
       What are the top 10 industries in the network?
     Used to limit list results
       Tell me all the connections who went to UCSC
     Facets allow applications to provide
      exploration or customize experience


Kirsten Jones         http://www.princesspolymath.com   @synedra
    Pros
       Powerful and flexible
       Reduces number of calls
       Allows for strict throttles
     Cons
       Steep learning curve
       Calls to the backend can be expensive (calling
          multiple resources)

Kirsten Jones           http://www.princesspolymath.com   @synedra
    Your data is unique – schema should reflect
      that
     Don’t limit developers accidentally
     Default/expand is great for very specific use
      cases
     To encourage innovation in a more graph-like
      system, allow developers to express what
      they want
       Facets, fields, drill down
Kirsten Jones           http://www.princesspolymath.com   @synedra
    https://www.socialtext.net/st-rest-docs/
     http://developer.netflix.com
     http://developer.linkedin.com

     http://www.princesspolymath.com

     http://www.restfest.org/

                 Questions?
Kirsten Jones       http://www.princesspolymath.com   @synedra

Más contenido relacionado

La actualidad más candente

getting_rid_of_duplicate_content_iss-priyank_garg.ppt
getting_rid_of_duplicate_content_iss-priyank_garg.pptgetting_rid_of_duplicate_content_iss-priyank_garg.ppt
getting_rid_of_duplicate_content_iss-priyank_garg.pptzachbrowne
 
Fun with metadata
Fun with metadataFun with metadata
Fun with metadataBob Chao
 
Data Visualization for SEO
Data Visualization for SEOData Visualization for SEO
Data Visualization for SEOAhrefs
 

La actualidad más candente (7)

Writing & SEO
Writing & SEOWriting & SEO
Writing & SEO
 
getting_rid_of_duplicate_content_iss-priyank_garg.ppt
getting_rid_of_duplicate_content_iss-priyank_garg.pptgetting_rid_of_duplicate_content_iss-priyank_garg.ppt
getting_rid_of_duplicate_content_iss-priyank_garg.ppt
 
prestiva_blackhat
prestiva_blackhatprestiva_blackhat
prestiva_blackhat
 
Seo and analytics basics
Seo and analytics basicsSeo and analytics basics
Seo and analytics basics
 
Day 3
Day 3Day 3
Day 3
 
Fun with metadata
Fun with metadataFun with metadata
Fun with metadata
 
Data Visualization for SEO
Data Visualization for SEOData Visualization for SEO
Data Visualization for SEO
 

Destacado

Servicios REST - PucelaTechDay
Servicios REST - PucelaTechDayServicios REST - PucelaTechDay
Servicios REST - PucelaTechDayAsier Marqués
 
APIs REST #devfestBilbao
APIs REST #devfestBilbaoAPIs REST #devfestBilbao
APIs REST #devfestBilbaoAsier Marqués
 
Interoperabilidad en android con APIs REST/JSON
Interoperabilidad en android con APIs REST/JSONInteroperabilidad en android con APIs REST/JSON
Interoperabilidad en android con APIs REST/JSONGDG Cali
 
Rest clase 4 - curso front-end 2014 - open webinars
Rest   clase 4 - curso front-end 2014 - open webinarsRest   clase 4 - curso front-end 2014 - open webinars
Rest clase 4 - curso front-end 2014 - open webinarsOpenWebinars.net
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareGustavo Cuen
 
Representational State Transfer
Representational State TransferRepresentational State Transfer
Representational State TransferAlexei Skachykhin
 

Destacado (9)

Successful developers
Successful developersSuccessful developers
Successful developers
 
API Centric
API CentricAPI Centric
API Centric
 
Servicios REST - PucelaTechDay
Servicios REST - PucelaTechDayServicios REST - PucelaTechDay
Servicios REST - PucelaTechDay
 
APIs REST #devfestBilbao
APIs REST #devfestBilbaoAPIs REST #devfestBilbao
APIs REST #devfestBilbao
 
Interoperabilidad en android con APIs REST/JSON
Interoperabilidad en android con APIs REST/JSONInteroperabilidad en android con APIs REST/JSON
Interoperabilidad en android con APIs REST/JSON
 
Rest clase 4 - curso front-end 2014 - open webinars
Rest   clase 4 - curso front-end 2014 - open webinarsRest   clase 4 - curso front-end 2014 - open webinars
Rest clase 4 - curso front-end 2014 - open webinars
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 
Cancer De Prostata
Cancer De ProstataCancer De Prostata
Cancer De Prostata
 
Representational State Transfer
Representational State TransferRepresentational State Transfer
Representational State Transfer
 

Similar a Rest schema design

Experiments in Data Portability
Experiments in Data PortabilityExperiments in Data Portability
Experiments in Data PortabilityGlenn Jones
 
The Semantic Web #4 - RDF (1)
The Semantic Web #4 - RDF (1)The Semantic Web #4 - RDF (1)
The Semantic Web #4 - RDF (1)Myungjin Lee
 
Advanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich SnippetsAdvanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich SnippetsJustin Briggs
 
Federated Search in a Disparate Environment
Federated Search in a Disparate EnvironmentFederated Search in a Disparate Environment
Federated Search in a Disparate EnvironmentHelen Mitchell
 
Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Ben Ramsey
 
PUNEETH UPDATED RESUME
PUNEETH UPDATED RESUMEPUNEETH UPDATED RESUME
PUNEETH UPDATED RESUMEpuneethvyas
 
Building Viral Social Experiences
Building Viral Social ExperiencesBuilding Viral Social Experiences
Building Viral Social ExperiencesJonathan LeBlanc
 
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!Serdar Basegmez
 
Searching the Web of Data (Tutorial)
Searching the Web of Data (Tutorial)Searching the Web of Data (Tutorial)
Searching the Web of Data (Tutorial)Gerard de Melo
 
DC-2008 Tutorial 3 - Dublin Core and other metadata schemas
DC-2008 Tutorial 3 - Dublin Core and other metadata schemasDC-2008 Tutorial 3 - Dublin Core and other metadata schemas
DC-2008 Tutorial 3 - Dublin Core and other metadata schemasMikael Nilsson
 
Experiments in Data Portability 2
Experiments in Data Portability 2Experiments in Data Portability 2
Experiments in Data Portability 2Glenn Jones
 
Not Big Data, AnyData
Not Big Data, AnyData Not Big Data, AnyData
Not Big Data, AnyData bsidesaugusta
 
How to use Schema to enrich search results and improve your CTR - Andrew Mart...
How to use Schema to enrich search results and improve your CTR - Andrew Mart...How to use Schema to enrich search results and improve your CTR - Andrew Mart...
How to use Schema to enrich search results and improve your CTR - Andrew Mart...SearchNorwich
 
Sem tech2013 tutorial
Sem tech2013 tutorialSem tech2013 tutorial
Sem tech2013 tutorialThengo Kim
 
Recent Trends in Semantic Search Technologies
Recent Trends in Semantic Search TechnologiesRecent Trends in Semantic Search Technologies
Recent Trends in Semantic Search TechnologiesThanh Tran
 
The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast Aleyda Solís
 
Proposed schema changes - have your say
Proposed schema changes - have your sayProposed schema changes - have your say
Proposed schema changes - have your sayCrossref
 

Similar a Rest schema design (20)

Experiments in Data Portability
Experiments in Data PortabilityExperiments in Data Portability
Experiments in Data Portability
 
The Semantic Web #4 - RDF (1)
The Semantic Web #4 - RDF (1)The Semantic Web #4 - RDF (1)
The Semantic Web #4 - RDF (1)
 
Advanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich SnippetsAdvanced Structured Data: Beyond Rich Snippets
Advanced Structured Data: Beyond Rich Snippets
 
Federated Search in a Disparate Environment
Federated Search in a Disparate EnvironmentFederated Search in a Disparate Environment
Federated Search in a Disparate Environment
 
Modified REST Presentation
Modified REST PresentationModified REST Presentation
Modified REST Presentation
 
Microformats
MicroformatsMicroformats
Microformats
 
Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)
 
PUNEETH UPDATED RESUME
PUNEETH UPDATED RESUMEPUNEETH UPDATED RESUME
PUNEETH UPDATED RESUME
 
Building Viral Social Experiences
Building Viral Social ExperiencesBuilding Viral Social Experiences
Building Viral Social Experiences
 
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
ICONUK 2016: REST Assured, Freeing Your Domino Data Has Never Been That Easy!
 
Searching the Web of Data (Tutorial)
Searching the Web of Data (Tutorial)Searching the Web of Data (Tutorial)
Searching the Web of Data (Tutorial)
 
DC-2008 Tutorial 3 - Dublin Core and other metadata schemas
DC-2008 Tutorial 3 - Dublin Core and other metadata schemasDC-2008 Tutorial 3 - Dublin Core and other metadata schemas
DC-2008 Tutorial 3 - Dublin Core and other metadata schemas
 
Experiments in Data Portability 2
Experiments in Data Portability 2Experiments in Data Portability 2
Experiments in Data Portability 2
 
REST Presentation
REST PresentationREST Presentation
REST Presentation
 
Not Big Data, AnyData
Not Big Data, AnyData Not Big Data, AnyData
Not Big Data, AnyData
 
How to use Schema to enrich search results and improve your CTR - Andrew Mart...
How to use Schema to enrich search results and improve your CTR - Andrew Mart...How to use Schema to enrich search results and improve your CTR - Andrew Mart...
How to use Schema to enrich search results and improve your CTR - Andrew Mart...
 
Sem tech2013 tutorial
Sem tech2013 tutorialSem tech2013 tutorial
Sem tech2013 tutorial
 
Recent Trends in Semantic Search Technologies
Recent Trends in Semantic Search TechnologiesRecent Trends in Semantic Search Technologies
Recent Trends in Semantic Search Technologies
 
The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast The Structured Data Toolbox for SEOs #SMXEast
The Structured Data Toolbox for SEOs #SMXEast
 
Proposed schema changes - have your say
Proposed schema changes - have your sayProposed schema changes - have your say
Proposed schema changes - have your say
 

Más de Kirsten Hunter

Más de Kirsten Hunter (20)

Git store
Git storeGit store
Git store
 
Polyglot copy
Polyglot copyPolyglot copy
Polyglot copy
 
Quantifying your-fitness
Quantifying your-fitnessQuantifying your-fitness
Quantifying your-fitness
 
Api intensive - What they Are
Api intensive - What they AreApi intensive - What they Are
Api intensive - What they Are
 
Designing irresistible apis
Designing irresistible apisDesigning irresistible apis
Designing irresistible apis
 
Api 101
Api 101Api 101
Api 101
 
Designing irresistible apis
Designing irresistible apisDesigning irresistible apis
Designing irresistible apis
 
Api 101
Api 101Api 101
Api 101
 
Designing irresistible APIs
Designing irresistible APIsDesigning irresistible APIs
Designing irresistible APIs
 
API First
API FirstAPI First
API First
 
API 101 Workshop from APIStrat Conference
API 101 Workshop from APIStrat ConferenceAPI 101 Workshop from APIStrat Conference
API 101 Workshop from APIStrat Conference
 
Liberating your data
Liberating your dataLiberating your data
Liberating your data
 
Liberating your data
Liberating your dataLiberating your data
Liberating your data
 
API 101 - Understanding APIs.
API 101 - Understanding APIs.API 101 - Understanding APIs.
API 101 - Understanding APIs.
 
Demystifying REST - SFRails meetup
Demystifying REST - SFRails meetupDemystifying REST - SFRails meetup
Demystifying REST - SFRails meetup
 
Quantifying fitness
Quantifying fitnessQuantifying fitness
Quantifying fitness
 
Prototyping in the cloud
Prototyping in the cloudPrototyping in the cloud
Prototyping in the cloud
 
Designing for developers
Designing for developersDesigning for developers
Designing for developers
 
Facebook appsincloud
Facebook appsincloudFacebook appsincloud
Facebook appsincloud
 
Demystifying REST
Demystifying RESTDemystifying REST
Demystifying REST
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Rest schema design

  • 1. Kirsten Jones, Technical Leader, Cisco Systems @synedra http://www.princesspolymath.com
  • 2. Building a resource map  Usability concerns  Interface design choices  Examples: Socialtext, Netflix, LinkedIn Kirsten Jones http://www.princesspolymath.com @synedra
  • 3. APIs must be usable  Consistency  How do you want applications to behave?  What makes sense for your data?  Reduce errors, increase success Kirsten Jones http://www.princesspolymath.com @synedra
  • 4. Resource map  Support reasonable cross-referenced resources  Expandability of resources  Explicit declaration of resource structure  Hyperlinking related resources Kirsten Jones http://www.princesspolymath.com @synedra
  • 5. Cover three different APIs with different approaches  Describe the schema for the API  Describe interface choices made  Pros/Cons of approach Kirsten Jones http://www.princesspolymath.com @synedra
  • 6. Socialtext  Simple wiki API, very basic implementation  Netflix  More complicated data space  Some expansion to reduce calls  Related resource hyperlinks  LinkedIn  Much more complicated  Powerful query language Kirsten Jones http://www.princesspolymath.com @synedra
  • 7. Basic wiki software  Users, workspaces, pages – now signals and themes  REST API designed 7 years ago for 3rd parties and to run site widgets  Design considerations – consistency, usability, simplicity Kirsten Jones http://www.princesspolymath.com @synedra
  • 8. All resources under /data  Collections  /nouns gives a list of resource type ‘noun’ ▪ Ex: /data/workspaces  Entities  /nouns/nounid gives a resource ▪ Ex: /data/workspaces/12  Sorting, filtering, ordering with parameters Kirsten Jones http://www.princesspolymath.com @synedra
  • 9. Limiting scope for this discussion  Workspaces, pages, tags  /data/workspaces  /data/workspaces/:wsid  /data/workspaces/:wsid/pages  /data/workspaces/:wsid/pages/:pageid  /data/workspaces/:wsid/pages/:pageid/tags  /data/workspaces/:wsid/tags/:tagid/pages Kirsten Jones http://www.princesspolymath.com @synedra
  • 10. Pros  Consistent mapping of (fairly simple) domain  Can reach resources multiple ways  Browsable API allows for discoverability  Cons  Requires many more calls  No URL links to related resources Kirsten Jones http://www.princesspolymath.com @synedra
  • 11. Movie catalog information  Movies and people associated with them  Access to user queues and recommendations  Information about user’s relationship to movie (watched, rated) Kirsten Jones http://www.princesspolymath.com @synedra
  • 12. Devices (Xbox, TVs)  Third party developers  Minimize traffic for heavy users  Monetized use cases well understood  Filtering, ordering, searching Kirsten Jones http://www.princesspolymath.com @synedra
  • 13. /catalog/titles  Movies, TV shows  /catalog/people  Actors, directors  /users  Queue management, recommendations Kirsten Jones http://www.princesspolymath.com @synedra
  • 14. List context  Returned for searches, lists, recommendations, similar movies  minimal info – id, box art, release year, name, rating  Hyperlinks to related entities  Expansion available to get more info  Details context  All available title information Kirsten Jones http://www.princesspolymath.com @synedra
  • 15. <catalog_title> <id>http://api-public.netflix.com/catalog/titles/series/70023522/seasons/70023522 </id> <title short="The Office: Season 1" regular="The Office: Season 1"/> <box_art small="http://alien2.netflix.com/us/boxshots/tiny/70023522.jpg" medium="http://alien2.netflix.com/us/boxshots/small/70023522.jpg" large="http://alien2.netflix.com/us/boxshots/large/70023522.jpg"/> <link href= "http://api-public.netflix.com/catalog/titles/series/70023522/seasons/70023522/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"/> <release_year>2005</release_year> <category scheme="http://api-public.netflix.com/categories/tv_ratings" label="TV-14"/> <runtime>8700</runtime> … </catalog_title> Kirsten Jones http://www.princesspolymath.com @synedra
  • 16. <catalog_title> <id>http://api-public.netflix.com/catalog/titles/series/70023522/seasons/70023522 </id> <title short="The Office: Season 1" regular="The Office: Season 1"/> <box_art small="http://alien2.netflix.com/us/boxshots/tiny/70023522.jpg" medium="http://alien2.netflix.com/us/boxshots/small/70023522.jpg" large="http://alien2.netflix.com/us/boxshots/large/70023522.jpg"/> <link href= "http://api-public.netflix.com/catalog/titles/series/70023522/seasons/70023522/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"/> <release_year>2005</release_year> <category scheme="http://api-public.netflix.com/categories/tv_ratings" label="TV-14"/> <runtime>8700</runtime> … </catalog_title> Kirsten Jones http://www.princesspolymath.com @synedra
  • 17. Used for related information  Can be used to inform ‘expand’ choices  Can be used to pull additional resources  Prevent developer mistakes (manually creating resource URL) Kirsten Jones http://www.princesspolymath.com @synedra
  • 18. Search  /catalog/titles?term=cruise  Autocomplete  Very fast responses  Even more limited data (name, ID)  /catalog/titles/autocomplete?term=Snakes  Expand  Allows applications to retrieve details in list  /catalog/?term=cruise&expand=cast,directors Kirsten Jones http://www.princesspolymath.com @synedra
  • 19. Pros  Great for very specific use cases (devices)  Provides URLs as identifiers and hyperlinks  Some expansion to prevent spamming  Cons  Not fantastic for exploration/innovation  No way to reduce information retrieved  No way to dig deeper into tree Kirsten Jones http://www.princesspolymath.com @synedra
  • 20. Social Network  Deeply Interlinked  Rich Information  Many potential use cases Kirsten Jones http://www.princesspolymath.com @synedra
  • 21. Support many use cases  Provide control over response size  Limit overall call volume  Exercise consistency Kirsten Jones http://www.princesspolymath.com @synedra
  • 22. /people  Mother of all resources (to excess)  Contains expandable information about profile data  /groups  /companies  /jobs  Each has the ability to expand to include information about other top level resources Kirsten Jones http://www.princesspolymath.com @synedra
  • 23. No hyperlinks  Being able to drill down makes this less of an issue  Throttles  Everybody wants user databases – fraud  Very expressive query language  Developers get exactly the response they need  LinkedIn can analyze queries to optimize  Reduces number of queries Kirsten Jones http://www.princesspolymath.com @synedra
  • 24. Not very RESTful, but highly effective  Allows developers to specify exactly what data they want, and drill down  All the user’s connections, the schools they went to, their company name and company’s industry  Specifying fields means only the data you want – the default is not guaranteed to be consistent Kirsten Jones http://www.princesspolymath.com @synedra
  • 25. /people/~  User’s default profile  Usually id, first name, last name, headline  /people/~:(id, first-name,last-name,headline)  Same request, guaranteed to have the right info  /people/~:(id,first-name,picture-profile- url,educations:(school- name),positions:(company:(name))) Kirsten Jones http://www.princesspolymath.com @synedra
  • 26. /people/~/connections:(id,first-name,picture- profile-url,educations:(school- name),positions:(company:(name,industry)))  /people-search:(people:(id,first-name,last- name,picture-url,headline),num- results)?first-name=Clair Kirsten Jones http://www.princesspolymath.com @synedra
  • 27. Facets allow flexible control of queries  Can be returned for a user’s network  What are the top 10 industries in the network?  Used to limit list results  Tell me all the connections who went to UCSC  Facets allow applications to provide exploration or customize experience Kirsten Jones http://www.princesspolymath.com @synedra
  • 28. Pros  Powerful and flexible  Reduces number of calls  Allows for strict throttles  Cons  Steep learning curve  Calls to the backend can be expensive (calling multiple resources) Kirsten Jones http://www.princesspolymath.com @synedra
  • 29. Your data is unique – schema should reflect that  Don’t limit developers accidentally  Default/expand is great for very specific use cases  To encourage innovation in a more graph-like system, allow developers to express what they want  Facets, fields, drill down Kirsten Jones http://www.princesspolymath.com @synedra
  • 30. https://www.socialtext.net/st-rest-docs/  http://developer.netflix.com  http://developer.linkedin.com  http://www.princesspolymath.com  http://www.restfest.org/ Questions? Kirsten Jones http://www.princesspolymath.com @synedra