ОТВЕТ:
Похоже, что Luminus создает конфигурацию промежуточного программного обеспечения:
(defn service-routes []
["/api"
{:coercion spec-coercion/coercion
:muuntaja formats/instance
:swagger {:id ::api}
:middleware [;; query-params & form-params
parameters/parameters-middleware
;; content-negotiation
muuntaja/format-negotiate-middleware
;; encoding response body
muuntaja/format-response-middleware
;; exception handling
exception/exception-middleware
;; decoding request body
muuntaja/format-request-middleware
;; coercing response bodys
coercion/coerce-response-middleware
;; coercing request parameters
coercion/coerce-request-middleware
;; multipart
multipart/multipart-middleware
]}
комментируя строку "muuntaja / format -gotiate-middleware" делает " application / json "вызов возможен.
ВТОРОЕ ОБНОВЛЕНИЕ (четыре часа спустя)
Хорошо, эта вещь промежуточного программного обеспечения muuntaja не была проблемой вообще, настоящей проблемой это то, что curl отправляет данные в формате:
{ test_by_id(id: 7, archived: false) { title } }
, в то время как ре-граф использует:
{"query":"query { test_by_id(id: 7, archived: false) { title } }","variables":null}
это обычная java строка, кстати, не структура данных, поэтому мы нужно сделать некоторые изменения, сначала новую функцию:
(defn graphql-call [req]
(let [body (-> req :body slurp)
full-query (json/read-str body :key-fn keyword)
_ (log/info (str ">>> **** full-query >>>>> " full-query))]
(ok (graphql/execute-request full-query))))
мы установили функцию:
["/graphql" {:post graphql-call}]
и в my_app.routes.services.graphql файл :
(defn execute-request [{:keys [variables query context]}]
(json/write-str (lacinia/execute compiled-schema query variables context)))
и теперь перерисовка работает!
(также теперь я могу отправлять и использовать переменные в GraphQL)
Необходимо установить:
:http-parameters {:with-credentials? false
:oauth-token "ah4rdSecr3t"
:headers {"Content-Type" "application/graphql"}
кстати. Кроме того, может быть, это лучше:
(lacinia/execute compiled-schema query variables context)
чем:
(json/write-str (lacinia/execute compiled-schema query variables context))
, потому что это мешает повторному графику импорта данных уже в виде собственной карты ClojureScript.