Моя цель: Создать приложение формы Windows, которое запрашивает через GraphQl существующую онлайн-базу данных.
Что я сделал:
- Чтобы смоделировать сервер graphQl, я до конца следовал официальному Graphql-node Tutorial . Так что теперь я могу сделать запрос с игровой площадки GraphQl и получить ответ. Этот сервер работает на локальном хосте: 4000.
- Я создал приложение формы windows в Visual Studio, которое запрашивает в graphQl внутреннюю базу данных, содержащую поддельные данные. Например,
Мой Form.cs класс содержит этот код, где я выполняю запрос onButtonClick
private void button1_Click(object sender, EventArgs e)
{
var schema = Schema.For(@"
type Jedi {
name: String,
side: String,
id: ID
}
type Query {
hello: String,
jedis: [Jedi],
jedi(id: ID): Jedi
}", _ => { _.Types.Include<Query>(); }
);
var json = schema.Execute(_ =>
{
_.Query = "{jedis { name, side } }";
});
System.Diagnostics.Debug.WriteLine(json);
label1.Text = json;
}
После выполнения запроса мой Запрос .cs класс распознает его и разрешит запрос
class Query
{
[GraphQLMetadata("jedis")]
public IEnumerable<Jedi> GetJedis()
{
return StarWarsDB.GetJedis();
}
}
Это моя текущая внутренняя БД
class StarWarsDB
{
public static IEnumerable<Jedi> GetJedis()
{
return new List<Jedi>() {
new Jedi(){ Id = 1, Name ="Luke", Side="Light"},
new Jedi(){ Id = 2, Name ="Yoda", Side="Light"},
new Jedi(){ Id = 3, Name ="Darth Vader", Side="Dark"}
};
}
}
Следующий шаг, который я хочу сделать:
Теперь я нашел много примеров в Интернете о том, как сделать запрос к БД, но они всегда делались внутри Visual Studio. Я хотел подключиться к моей личной БД, работающей на моем локальном хосте (тот, который я сделал после graphql-node Tutorial ) и запросить ее с помощью graphQl. Затем возьмите ответ JSON и напечатайте его где-нибудь.