Создание провайдера реактивных данных для FaunaDB - PullRequest
1 голос
/ 28 марта 2020

Когда закроется Graphcool , я пытался заставить реагировать-администратор для работы с Фауна , но безуспешно. Грамматика Fauna GraphQL отличается от Graphcool, и, конечно, когда я подключаюсь к своей базе данных Fauna, она не распознает ни один из ресурсов.

Если я создаю очень простую базу данных Fauna, загружая следующую схему GraphQL :

type Location {
    name: String!
    address1: String!
    address2: String
    city: String
    state: String
    zip: String
}

type Query {
  allLocations: [ Location ]
}

Окончательная схема, которую создает Фауна, выглядит следующим образом:

directive @embedded on OBJECT
directive @collection(name: String!) on OBJECT
directive @index(name: String!) on FIELD_DEFINITION
directive @resolver(
  name: String
  paginated: Boolean! = false
) on FIELD_DEFINITION
directive @relation(name: String) on FIELD_DEFINITION
directive @unique(index: String) on FIELD_DEFINITION
scalar Date

type Location {
  city: String
  name: String!
  zip: String
  state: String
  _id: ID!
  address2: String
  address1: String!
  _ts: Long!
}

input LocationInput {
  name: String!
  address1: String!
  address2: String
  city: String
  state: String
  zip: String
}

type LocationPage {
  data: [Location]!
  after: String
  before: String
}

scalar Long

type Mutation {
  createLocation(data: LocationInput!): Location!
  updateLocation(
    id: ID!
    data: LocationInput!
  ): Location
  deleteLocation(id: ID!): Location
}

type Query {
  findLocationByID(id: ID!): Location
  allLocations(
    _size: Int
    _cursor: String
  ): LocationPage!
}

scalar Time

Мне трудно понять, как адаптировать поставщиков данных Graphcool / GraphQL для учета разница в грамматике фауны. Я заметил пару различий:

  • Фауна называет идентификаторы _id, но ra-data-graphcool ожидает, что они будут id
  • Фауна создает / обновляет мутации ожидайте один входной объект, который отражает тип

Вероятно, существуют также различия в том, как поставщик данных Graphcool формирует gql для получения списков записей. Кто-нибудь создал или изменил поставщика данных для Fauna (или, может быть, Back4App или других бесплатных / недорогих облачных провайдеров GraphQL)?

...