我对graphql和动物群完全陌生,所以请让我忍受这是一个愚蠢的问题。 我看到我可以从仪表板> GRAPHQL运行graphql查询。例如粘贴以下代码
from ..base import *
@register(u'Oxford_Article')
class Oxford_Article(WebService):
def _get_from_api(self, lang_id="en"):
data = self.get_response("https://www.oxfordlearnersdictionaries.com/search/english/?q={}".format(self.quote_word))
soup = parse_html(data)
result = {'Article': u''}
# Article
element = soup.find('div', id='entryContent')
if element:
_unused = [s.extract() for s in element.select('script')]
result['Article'] = u''.join(str(e) for e in element.contents)
return self.cache_this(result)
@export('Article definition')
def fld_definate(self):
return self._get_field('Article')
,然后点击运行按钮。但是,如何从要在浏览器中运行的html / js代码运行此查询? 在js中,我可以创建clientsdk,但不确定如何通过上述查询?
query FindAllTodos {
allTodos {
data {
_id
title
completed
list {
title
}
}
}
}
在谷歌搜索中,我找到了使用类似FQL之类的结构的示例
import faunadb, { query as q } from 'faunadb';
let adminClient = new faunadb.Client({
secret: 'my-key'
});
但是我怎样才能通过graphql查询并获得相同的结果,它使我回到了graphql操场的右侧窗格中。
答案 0 :(得分:1)
您可以使用诸如 curl 之类的客户端或任何GraphQL客户端。 使用curl可以发出类似以下内容的信息:
curl -X POST -H 'Authorization: Bearer <your key>' https://graphql.fauna.com/graphql -d '{ "query": "{ FindAllTodos{ data {_id title completed list { title }} }}"}'
答案 1 :(得分:0)
我可以为您提供90%的服务,但是我呈现给您的代码是使用HttpClient和RxJs Observables的Angular应用程序中的TypeScript编写的。只需付出一点努力,您就可以使用原始HTTP提取功能在JS中进行重写。
这里是Brecht De Rooms的视频,对我有很大帮助: https://www.youtube.com/watch?v=KlUPiQaTp0I
const SERVER_KEY = 'Your server key goes here';
const executeQuery = (query: string) => {
const headers = new HttpHeaders().set('Authorization', 'Bearer ' + SERVER_KEY);
return this.http.post<any>('https://graphql.fauna.com/graphql',
JSON.stringify({ query }), { headers });
}
const findAllTodos = () => {
const query = `query FindAllTodos {
allTodos {
data {
_id
title
completed
list {
title
}
}
}
}`;
return executeQuery(query);
}
findAllTodos().subscribe(console.log);
对我而言,障碍是了解Fauna服务器希望采用以下形式的JSON:
{ "query": "query FindAllTodos {allTodos { ... and so forth and so on ..." }
当您运行突变时,同样的结构也适用:
{ "query": "mutation AddTodo { ...etc... " }
顺便说一句,如果您的查询第一次无法正常运行(可能无法正常运行),建议您打开浏览器的开发人员的工具“网络”标签,然后检查发送到Fauna服务器的请求。查看响应。那里会有错误信息。即使有错误,响应状态也将是200(确定)。您需要查看响应以检查错误。