SlideShare a Scribd company logo
RESTful Search API 
(design question) 
philippe @marsteau
Goals 
● Handle complex search queries 
● Simple to use by developers 
● Results can be bookmarked 
● Do not leak PII / sensible information 
● « RESTful »
Approaches 
1. Use GET w/ specific query parameter(s) 
(e.g. “q”, “search”) 
● URI length limitation 
● I18n URI considerations 
● PII may leak in URIs (server logs, etc) 
2. Use GET w/ query as body 
● GET body has no semantic meaning to the request 
● Non cacheable results 
● Non addressable results
Approaches (cont’d) 
3. Use POST w/ body 
● Incorrectly implies state change 
● Non cacheable results 
● No automatic retry on network failures 
● Non addressable results 
4. Use non-standard HTTP method w/ body 
● WebDAV query protocol uses SEARCH (RFC5323) back in 2008 
● Unknown thus treated as unsafe method 
● Non cacheable results 
● Non addressable results
Approaches (cont’d) 
5. Expose a Query Definition resource 
● Query has own lifecycle (e.g. PUT /query-defs/123 + query def as body) 
● Addressable query (e.g. GET /query-defs/123) 
● Addressable results (e.g. GET /query-defs/123/results) 
● Introduces state (e.g. DELETE /query-defs/123) 
● Unintuitive to some developers (PUT query + GET results + DELETE query)

More Related Content

Viewers also liked

How to get taller faster
How to get taller fasterHow to get taller faster
How to get taller faster
mickymicheal66
 
Rai conference 27.09.14 David Mc Mahon PDST
Rai conference 27.09.14   David Mc Mahon PDSTRai conference 27.09.14   David Mc Mahon PDST
Rai conference 27.09.14 David Mc Mahon PDST
davidmcma23
 
CUENTAS Y SUBCRIPCIONES
CUENTAS Y SUBCRIPCIONESCUENTAS Y SUBCRIPCIONES
CUENTAS Y SUBCRIPCIONES
Cristian Reyes
 
Ppt angulos (1)
Ppt angulos (1)Ppt angulos (1)
Ppt angulos (1)
Cristian Reyes
 
Dick&carey
Dick&careyDick&carey
Dick&carey
zainazainah
 
PHỐI TRỘN, NGHIỀN, ĐỒNG HÓA ÉP VÀ ÉP ĐÙN
PHỐI TRỘN, NGHIỀN, ĐỒNG HÓA ÉP VÀ ÉP ĐÙNPHỐI TRỘN, NGHIỀN, ĐỒNG HÓA ÉP VÀ ÉP ĐÙN
PHỐI TRỘN, NGHIỀN, ĐỒNG HÓA ÉP VÀ ÉP ĐÙN
Toàn Tỉnh
 
Neoplasia
NeoplasiaNeoplasia
Sanju_July2015_Atlanta_QA_Test_Lead_0715
Sanju_July2015_Atlanta_QA_Test_Lead_0715Sanju_July2015_Atlanta_QA_Test_Lead_0715
Sanju_July2015_Atlanta_QA_Test_Lead_0715
sanju alex
 

Viewers also liked (8)

How to get taller faster
How to get taller fasterHow to get taller faster
How to get taller faster
 
Rai conference 27.09.14 David Mc Mahon PDST
Rai conference 27.09.14   David Mc Mahon PDSTRai conference 27.09.14   David Mc Mahon PDST
Rai conference 27.09.14 David Mc Mahon PDST
 
CUENTAS Y SUBCRIPCIONES
CUENTAS Y SUBCRIPCIONESCUENTAS Y SUBCRIPCIONES
CUENTAS Y SUBCRIPCIONES
 
Ppt angulos (1)
Ppt angulos (1)Ppt angulos (1)
Ppt angulos (1)
 
Dick&carey
Dick&careyDick&carey
Dick&carey
 
PHỐI TRỘN, NGHIỀN, ĐỒNG HÓA ÉP VÀ ÉP ĐÙN
PHỐI TRỘN, NGHIỀN, ĐỒNG HÓA ÉP VÀ ÉP ĐÙNPHỐI TRỘN, NGHIỀN, ĐỒNG HÓA ÉP VÀ ÉP ĐÙN
PHỐI TRỘN, NGHIỀN, ĐỒNG HÓA ÉP VÀ ÉP ĐÙN
 
Neoplasia
NeoplasiaNeoplasia
Neoplasia
 
Sanju_July2015_Atlanta_QA_Test_Lead_0715
Sanju_July2015_Atlanta_QA_Test_Lead_0715Sanju_July2015_Atlanta_QA_Test_Lead_0715
Sanju_July2015_Atlanta_QA_Test_Lead_0715
 

Similar to philippe @marsteau rest fest 2014 - restful search api

Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
Grand Parade Poland
 
NEPHP '13: Pragmatic API Development
NEPHP '13: Pragmatic API DevelopmentNEPHP '13: Pragmatic API Development
NEPHP '13: Pragmatic API Development
Andrew Curioso
 
Becoming "Facet"-nated with Search API
Becoming "Facet"-nated with Search APIBecoming "Facet"-nated with Search API
Becoming "Facet"-nated with Search API
cgmonroe
 
A Deep Dive into RESTful API Design Part 2
A Deep Dive into RESTful API Design Part 2A Deep Dive into RESTful API Design Part 2
A Deep Dive into RESTful API Design Part 2
VivekKrishna34
 
Are we there yet?
Are we there yet?Are we there yet?
Are we there yet?
Johann Höchtl
 
Web scraping in python
Web scraping in python Web scraping in python
Web scraping in python
Viren Rajput
 
Implementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor DeryaginImplementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor Deryagin
Elixir Club
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
IBACZ
 
Introducing Datawave
Introducing DatawaveIntroducing Datawave
Introducing Datawave
Accumulo Summit
 
Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018
Niranjanaa Ragupathy
 
CISSP Week 13
CISSP Week 13CISSP Week 13
CISSP Week 13
jemtallon
 
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
Paris Open Source Summit
 
Designing a generic Python Search Engine API - BarCampLondon 8
Designing a generic Python Search Engine API - BarCampLondon 8Designing a generic Python Search Engine API - BarCampLondon 8
Designing a generic Python Search Engine API - BarCampLondon 8
Richard Boulton
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIs
amesar0
 
Have Some Rest Building Web2.0 Apps And Services
Have Some Rest   Building Web2.0 Apps And ServicesHave Some Rest   Building Web2.0 Apps And Services
Have Some Rest Building Web2.0 Apps And Services
Nenad Nikolic
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2
 
API Testing.pptx
API Testing.pptxAPI Testing.pptx
API Testing.pptx
GurzuInc
 
Indexing repositories: Pitfalls & best practices
Indexing repositories: Pitfalls & best practicesIndexing repositories: Pitfalls & best practices
Indexing repositories: Pitfalls & best practices
Sistema de Servicios de Información y Bibliotecas SISIB
 
OSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles JudithOSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles Judith
NETWAYS
 
Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applications
BrettTasker
 

Similar to philippe @marsteau rest fest 2014 - restful search api (20)

Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
Mateusz Gruszczynski - Performance tests in Gatling (Quality Questions Confer...
 
NEPHP '13: Pragmatic API Development
NEPHP '13: Pragmatic API DevelopmentNEPHP '13: Pragmatic API Development
NEPHP '13: Pragmatic API Development
 
Becoming "Facet"-nated with Search API
Becoming "Facet"-nated with Search APIBecoming "Facet"-nated with Search API
Becoming "Facet"-nated with Search API
 
A Deep Dive into RESTful API Design Part 2
A Deep Dive into RESTful API Design Part 2A Deep Dive into RESTful API Design Part 2
A Deep Dive into RESTful API Design Part 2
 
Are we there yet?
Are we there yet?Are we there yet?
Are we there yet?
 
Web scraping in python
Web scraping in python Web scraping in python
Web scraping in python
 
Implementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor DeryaginImplementing GraphQL API in Elixir – Victor Deryagin
Implementing GraphQL API in Elixir – Victor Deryagin
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Introducing Datawave
Introducing DatawaveIntroducing Datawave
Introducing Datawave
 
Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018Introduction to Web Application Security - Blackhoodie US 2018
Introduction to Web Application Security - Blackhoodie US 2018
 
CISSP Week 13
CISSP Week 13CISSP Week 13
CISSP Week 13
 
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
#OSSPARIS19 - How to improve database observability - CHARLES JUDITH, Criteo
 
Designing a generic Python Search Engine API - BarCampLondon 8
Designing a generic Python Search Engine API - BarCampLondon 8Designing a generic Python Search Engine API - BarCampLondon 8
Designing a generic Python Search Engine API - BarCampLondon 8
 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIs
 
Have Some Rest Building Web2.0 Apps And Services
Have Some Rest   Building Web2.0 Apps And ServicesHave Some Rest   Building Web2.0 Apps And Services
Have Some Rest Building Web2.0 Apps And Services
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
API Testing.pptx
API Testing.pptxAPI Testing.pptx
API Testing.pptx
 
Indexing repositories: Pitfalls & best practices
Indexing repositories: Pitfalls & best practicesIndexing repositories: Pitfalls & best practices
Indexing repositories: Pitfalls & best practices
 
OSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles JudithOSMC 2019 | How to improve database Observability by Charles Judith
OSMC 2019 | How to improve database Observability by Charles Judith
 
Silverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applicationsSilverstripe at scale - design & architecture for silverstripe applications
Silverstripe at scale - design & architecture for silverstripe applications
 

Recently uploaded

Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 

Recently uploaded (20)

Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 

philippe @marsteau rest fest 2014 - restful search api

  • 1. RESTful Search API (design question) philippe @marsteau
  • 2. Goals ● Handle complex search queries ● Simple to use by developers ● Results can be bookmarked ● Do not leak PII / sensible information ● « RESTful »
  • 3. Approaches 1. Use GET w/ specific query parameter(s) (e.g. “q”, “search”) ● URI length limitation ● I18n URI considerations ● PII may leak in URIs (server logs, etc) 2. Use GET w/ query as body ● GET body has no semantic meaning to the request ● Non cacheable results ● Non addressable results
  • 4. Approaches (cont’d) 3. Use POST w/ body ● Incorrectly implies state change ● Non cacheable results ● No automatic retry on network failures ● Non addressable results 4. Use non-standard HTTP method w/ body ● WebDAV query protocol uses SEARCH (RFC5323) back in 2008 ● Unknown thus treated as unsafe method ● Non cacheable results ● Non addressable results
  • 5. Approaches (cont’d) 5. Expose a Query Definition resource ● Query has own lifecycle (e.g. PUT /query-defs/123 + query def as body) ● Addressable query (e.g. GET /query-defs/123) ● Addressable results (e.g. GET /query-defs/123/results) ● Introduces state (e.g. DELETE /query-defs/123) ● Unintuitive to some developers (PUT query + GET results + DELETE query)

Editor's Notes

  1. You could embed json as parameter value, but generates un-cool/ugly URIs Extended characters must be URL encoded, many client and server improperly handles proper encoding. PII (SSN, email address, etc.) can leak in server logs, browser cache local store, etc. Against regulations of many countries. Big deal in enterprise business. Proposed but rejected back in 1996 (http://www.w3.org/2001/tag/doc/whenToUseGet-20040321#safe) User-agents will never reuse cached entry (inneficient caching at best) Cannot bookmark the results for a specific query