Calculate coercers/schemas outside contexts when not dependent on request

Aberta
#464 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
25/100
Tipo de issue
Funcionalidade
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
clojure

Direção de pesquisa

Comece examinando o cache do coercer, o tratamento dinâmico de contexto e os caminhos routes/map->Route e merge-parameters mencionados na issue. A issue precisa de um escopo de otimização acordado e de uma forma de verificar que o trabalho independente da requisição é calculado fora dos contextos sem alterar o comportamento das rotas.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Coercers aren't really amenable to this at the moment, and use a memoized cache to get around this limitation (but given that equivalent Schema's are often not equal, might not be totally effective), but the idea is:

(context "/foo" req
  (GET "/" []
    :body [body :- MySchema]
    ...))
=>
(let [coercer (cache-coercion s/Int)]
  (context "/foo" req
    (GET "/" []
      :body [body :- coercer]
      ...))

Or perhaps an even more general optimization that would cache all sorts of things like merge-parameters and all the other args to routes/map->Route and the route itself, even under a dynamic context.

(let [rs (GET "/" []
             :body [body :- coercer]
             ...)]
  (context "/foo" req
    rs))
Linguagem predominante
Clojure
Estrelas
1.1k
Forks
144
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de metosin/compojure-api

Todas as issues de metosin/compojure-api

Issues semelhantes

Mais issues de Clojure

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.