10 pontos por xguru 2021-04-16 | 9 comentários | Compartilhar no WhatsApp
  • Introdução ao método SEARCH, adicionado como um novo Draft no IETF

  • Para buscar dados complexos, usar apenas GET/POST existentes é ineficiente

SEARCH /customers HTTP/1.1

Host: example.com

Content-Type: application/sql

SELECT username, email

WHERE DATEDIFF(DAY, GETDATE(), signup_date) > 7

  • Na prática, não significa que instruções SQL serão usadas como padrão, mas sim que esse tipo de conteúdo para busca pode ser enviado no corpo da requisição

  • Com isso, para uma mesma URL passam a ser possíveis GET, POST e SEARCH

  • Pelo cabeçalho Accept-Search, é possível especificar os formatos usados na busca :

→ Accept-Search: application/sql, application/graphql

  • Baseado no padrão do método SEARCH que existia no WebDAV (rfc5323)

9 comentários

 
beejei 2021-04-17

O OData é praticamente uma convenção para consultar dessa forma. Mas dizer que também seria possível usar application/sql e application/graphql no mesmo endpoint... é meio difícil de imaginar.

 
luavis 2021-04-16

Acho que o uso em si seria para casos em que disparar SQL diretamente é problemático e, embora semanticamente seja um GET, como no Elasticsearch, você queira fazer uma consulta enviando um HTTP Body.

 
tmptmp 2021-04-16

Logo no início do texto, diz-se que “it was recently adopted as an IETF draft standard”; nesse caso, esse “recently” se refere mesmo a 2015? O rascunho que eu vi foi este: https://tools.ietf.org/html/draft-snell-search-method-00. Pergunto porque queria saber se houve alguma atualização mais recente.

 
xguru 2021-04-16

É https://datatracker.ietf.org/doc/….

Parece que foi enviado recentemente, em 2021-03-31.

 
tkwlsrl 2021-04-16

Se for para enviar informações no body, teria que usar PUT ou POST.

Como eles não podem usar cache,

talvez também dê para usar algo como SEARCH.

Afinal, basta enviar só nos casos em que for aceito.

 
lallablah 2021-04-16

Isso me faz pensar no GraphQL, na direção de tentar melhorar as inconveniências do get e do post

 
superwoou 2021-04-16

Quando começarem a passar consultas no corpo da requisição, dá a sensação de que em algum momento vai surgir um problema como SQL Injection (principalmente se o site foi feito sem muito critério)..

 
andrewchaa 2021-04-16

Acho que dá para entender como um tipo de GET com body. De qualquer forma, vai ser preciso validar o body...

 
alstjr7375 2021-04-16

Pois é..