Представяне на нова версия на Graphene-JS

Обновената версия на Graphene-JS е предназначена да улесни интегрирането на GraphQL в текущата ви архитектура на Javascript само чрез... само чрез използване на декоратори.

По този начин можете да използвате повторно типовете данни, които сте използвали преди, по същия начин, както правите с вашите модели на MobX или TypeORM.

Е. Че. Просто.

Благодарение на него сега трябва да можете да използвате GraphQL по много по-приятелски начин, с по-малко код и подобрена четливост.

В нашите примери преминахме от „170 LOC схема“ (LOC: редове код) към много лесна за четене „100 LOC схема“.

Но защо нова рамка?

Във всяка от различните имплементации на GraphQL сървър има ясно разделение между типовете GraphQL и съответните типове данни (с изключение на Juniper -Rust's GraphQL framework- и Sangria).

След разговори на GraphQL Summit (обявяване на Graphene-JS) и гледане на някои проницателни разговори започна да става очевидно колко е важно да се затвори празнината между типовете GraphQL и типовете данни.

Не само заради желанието за по-стабилно дългосрочно решение, но и защото ще улесни интегрирането и използването на GraphQL.

Graphene-JS се опитва да улесни приемането на GraphQL в JS чрез:

  • Излагане на типове данни като GraphQL типове (чрез декоратори)
  • Опростяване на вашата дефиниция на GraphQL схема

Постепенно осиновяване

Когато разработвахме Graphene-JS, осъзнахме колко е важно разработчиците да могат да приемат Graphene-JS постепенно.

Поради това Graphene-JS има пълна оперативна съвместимост с типове GraphQL.
Ето няколко примера:

Искате ли да използвате типове GraphQL-js в Graphene?

Просто препратете към съответните типове GraphQL.
Същото важи за вече създадени GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, …

Искате ли да използвате типове Graphene в GraphQL-js?

Бъдещи подобрения

За разработчиците на typescript предвиждаме използването на API за отразяване на типа от Typescript, така че можем директно да пропуснем необходимостта от ръчно посочване на типовете полета, за да позволим на Graphene да ги открие автоматично.

Така че вместо да пишете:

Можем просто да направим:

Нещо подобно може да се постигне във Flow с помощта на плъгин babel.

Приятни странични ефекти

Благодарение на var hoisting, можем много лесно да се самопозоваваме на тип с Graphene-JS, нещо, което преди това беше невъзможно с GraphQL-js (без стойности на конфигурацията на thunk).

Бонус

Graphene-JS се доставя и с интеграционен пакет Graphene-Sequelize, който ще улесни още повече интегрирането на GraphQL във вашия съществуващ източник на данни.

Проверете го и ни кажете какво мислите!
https://github.com/graphql-js/graphene-sequelize

Искате ли да опитате?

Вие сте само на npm install graphene-js разстояние! 😊