Prisma est une couche d’accès aux données (DAL) Open Source, basée sur GraphQL, qui transforme votre base de données en une API GraphQL.

Prisma vous permet:

Lire et écrire dans votre base de données à l’aide de requêtes et de mutations GraphQL
Recevoir des mises à jour en temps réel pour les événements de base de données à l’aide des abonnements GraphQL
Effectuez des migrations et modélisez vos données à l’aide de GraphQL SDLQu’est ce que Prisma?

Cas d’utilisation
Le principal cas d’utilisation de Prisma est de fournir la couche d’accès aux données (think ORM) pour les serveurs API. En raison de son moteur GraphQL, Prisma est le plus souvent utilisé pour construire des API GraphQL mais fonctionne également avec REST ou tout autre paradigme API.

Les autres cas d’utilisation de Prisma sont les scripts, les fonctions, les serveurs de files d’attente ou tout autre contexte dans lequel les développeurs doivent communiquer avec une base de données.

Lors de la création d’un serveur GraphQL utilisant Prisma comme couche d’accès aux données, il est important de comprendre que l’API Prisma GraphQL générée automatiquement n’est pas utilisée par vos applications client.

Lors du développement de serveurs d’applications, la complexité réside dans la mise en œuvre d’un accès aux bases de données sûr et bien organisé en matière de synchronisation, d’optimisation / performance des requêtes et de sécurité. Cela devient encore plus compliqué lorsque plusieurs bases de données sont impliquées.

Une solution commune à ce problème est l’introduction d’une couche DAL dédiée qui élimine les complexités de l’accès aux bases de données. L’API de DAL est consommée par le serveur d’applications, permettant aux développeurs d’API de réfléchir simplement aux données dont ils ont besoin au lieu de se soucier de les récupérer de manière sécurisée et performante à partir de la base de données.

L’utilisation d’un DAL assure une séparation claire des problèmes et améliore donc la maintenabilité et la réutilisabilité de votre code. Avoir une forme d’abstraction de base de données (que ce soit une simple bibliothèque ORM ou un composant d’infrastructure autonome) est la meilleure pratique pour les applications de petite taille ainsi que pour les applications exécutées à grande échelle. Il garantit que le serveur d’applications peut communiquer avec vos bases de données de manière sécurisée et performante.

Prisma est un DAL auto-généré suivant les mêmes principes que les DAL leaders du marché (comme Strato de Twitter ou TAO de Facebook) tout en restant accessible pour les petites applications.

Prisma vous permet de démarrer votre projet avec une architecture propre dès le début et vous évite d’écrire le passe-partout qui est autrement nécessaire pour coller ensemble la base de données et le serveur d’applications.

Comment Prisma s’intègre-t-il dans votre pile?
Composer des API GraphQL avec des liaisons GraphQL
Lorsque vous travaillez avec Prisma, vous travaillez généralement avec plusieurs API GraphQL sur votre pile, chacune ayant une responsabilité différente (par exemple, serveur d’applications, DAL, …).

L’API CRUD / realtime GraphQL générée automatiquement par Prisma constitue la base de votre serveur d’applications. Sur le serveur d’applications, les opérations CRUD génériques de Prisma sont ré-exposées via des liaisons GraphQL et transformées en une API GraphQL spécifique au domaine (avec un schéma personnalisé) qui est exposée à vos applications clientes.

Une autre approche courante consiste à utiliser Prisma pour développer des “microservices GraphQL” avec une couche de passerelle GraphQL sur le dessus, combinant les microservices sous-jacents (en utilisant l’assemblage de schémas GraphQL).

EXEMPLE D’ARCHITECTURES
Prisma est extrêmement flexible et peut être utilisé avec presque toutes les architectures. Voici quelques exemples d’architectures montrant comment Prisma s’intègre dans votre pile.

Principaux concepts
Lorsque vous travaillez avec Prisma, vous devez comprendre les concepts suivants:

Service Prisma: chaque service Prisma fournit un mappage de votre base de données à GraphQL et expose une API GraphQL CRUD / en temps réel, appelée API Prisma. En travaillant avec Prisma, vous passerez le plus clair de votre temps à développer et à utiliser les API de vos services Prisma.
Prisma Server: Un serveur Prisma fournit l’environnement d’exécution pour de nombreux services Prisma. Les serveurs Prisma peuvent être déployés n’importe où (par exemple, en utilisant Docker) et sont soutenus par une ou plusieurs bases de données. Un serveur Prisma est configuré une fois, après quoi les services Prisma peuvent être déployés.
Configuration du service: vous pouvez considérer la configuration du service comme un modèle pour un service. Pour déployer un service, la CLI envoie la configuration du service au serveur Prisma qui crée / met à jour le service Prisma correspondant. La configuration du service comprend:

prisma.yml: le fichier de configuration racine d’un service Prisma (inclut le noeud final du service, le secret du service, le chemin d’accès au fichier du modèle de données, …)
Modèle de données: dans le modèle de données, vous définissez des modèles utilisés par Prisma pour générer l’API GraphQL pour votre base de données (et éventuellement pour migrer la base de données sous-jacente). Il utilise la syntaxe déclarative GraphQL SDL et est généralement stocké dans un fichier appelé datamodel.graphql.
Prisma CLI: La CLI Prisma est principalement utilisée pour gérer les services Prisma. Il vous permet d’initialiser et de déployer des services, de générer des jetons de service, d’analyser une base de données pour générer un modèle de données SDL, de supprimer des services d’un serveur Prisma, etc.

Prisma note相关推荐

  1. Paddle Release Note

    Paddle Release Note 重要更新 飞桨paddle框架2.0.0版本有如下重要更新: • 编程范式:默认开启动态图模式进行模型开发和训练,通过动转静的方式进行模型部署和训练加速.如果需 ...

  2. 机器学习与高维信息检索 - Note 7 - 核主成分分析(Kernel Principal Component Analysis,K-PCA)

    Note 7 - 核主成分分析(Kernel Principal Component Analysis) 核主成分分析 Note 7 - 核主成分分析(Kernel Principal Compone ...

  3. 机器学习与高维信息检索 - Note 6 - 核, 核方法与核函数(Kernels and the Kernel Trick)

    Note 6 核, 核方法与核函数 到目前为止,我们所讨论的机器学习算法的成功都依赖于对输入数据分布的假设.例如,PCA的效果越好,数据围绕线性子空间分布.或者在线性判别分析中,我们假设类的高斯分布, ...

  4. ADPRL - 近似动态规划和强化学习 - Note 10 - 蒙特卡洛法和时序差分学习及其实例 (Monte Carlo and Temporal Difference)

    Note 10 蒙特卡洛法和时序差分学习 Monte Carlo and Temporal Difference 蒙特卡洛法和时序差分学习 Note 10 蒙特卡洛法和时序差分学习 Monte Car ...

  5. 机器学习与高维信息检索 - Note 5 - (深度)前馈神经网络((Deep) Feedforward Neural Networks)及基于CVXOPT的相关实例

    Note 5 - (深度)前馈神经网络((Deep) Feedforward Neural Networks)及相关实例 5.1 FNN的定义和动机 粗略地说,前馈神经网络(FNN)是一种特殊的函数类 ...

  6. ADPRL - 近似动态规划和强化学习 - Note 8 - 近似策略迭代 (Approximate Policy Iteration)

    Note 8 近似策略迭代 Approximate Policy Iteration 近似策略迭代 Note 8 近似策略迭代 Approximate Policy Iteration 8.1 通用框 ...

  7. 机器学习与高维信息检索 - Note 4 - 主成分分析及其现代解释(Principal Component Analysis, PCA)及相关实例

    主成分分析及其现代解释 4. 主成分分析及其现代解释 Principal Component Analysis and Its Modern Interpretations 4.1 几何学解释 The ...

  8. ADPRL - 近似动态规划和强化学习 - Note 7 - Approximate Dynamic Programming

    Note 7 - 近似动态规划 Approximate Dynamic Programming 7. 近似动态规划 (Approximate Dynamic Programming) 7.1 近似架构 ...

  9. ADPRL - 近似动态规划和强化学习 - Note 6 - Mitigating the Curse of Dimensionality

    Note 6 Mitigating the Curse of Dimensionality 减轻维度诅咒 6. Mitigating the Curse of Dimensionality 减轻维度诅 ...

  10. ADPRL - 近似动态规划和强化学习 - Note 4 - Policy Iteration Algorithms

    Note 4 - Policy Iteration Algorithms 4. Policy Iteration Algorithms 补充:范数的性质 4.1 贪婪诱导策略的特性 (Properti ...

最新文章

  1. 遍历NSMutableDictionary NSMutableArray
  2. idea每次都要配置tomcat_电脑每次开机时间都不对?电脑每次开机都要重新设置时间解决方法...
  3. 深入浅出 Javascript API(二)--地图显示与基本操作 转
  4. GitForWindows工具集(GitBash命令行)
  5. javaScript——原型
  6. ViewState笔记
  7. 已知X随机变量的情况下,求解Y=G(x)的概率分布函数(只考虑单调的情况)
  8. PHIL2650 是个好课程
  9. qnap安装Linux程序,播酷云J3455-itx 安装 黑威联通Qnap 4.4.0(实机安装)
  10. Java 项目中使用 TongLink/Q 实现消息队列传输
  11. 大数据离线阶段Day5之多彩缤纷数据源
  12. ionic自定义图标心得分享
  13. 微信小游戏开发实战教程8-消除处理
  14. kali流量转发后依然断网_三大运营商的无限流量卡,哪家的网速最快,看完千万别选错了...
  15. 定期把电脑的文件备份到服务器,怎么让电脑定期自动备份文件或文件夹(学会这一招,让电脑自动备份你的重要资料)...
  16. 《代码整洁之道》阅读笔记 2有意义的命名
  17. 第26节 计算机网络知识
  18. Java的下载、安装与环境配置
  19. 字符设备驱动开发的流程
  20. 【中文分词系列】 5. 基于语言模型的无监督分词

热门文章

  1. Caused by: java.lang.NoSuchMethodError
  2. 【SDOI2013】项链 题解
  3. USB协议详解第20讲(USB包-帧首包SOF)
  4. c语言编程计算税后收入,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
  5. 软件测试周刊(第11期):飞狗
  6. win7 linux 虚拟机共享文件夹,Win7主机和虚拟机Linux Virtualbox共享文件夹设置教程...
  7. 盐值加密、公钥秘钥 理解
  8. 【转载】Saas模式
  9. ce游戏逆向修改之植物大战僵尸
  10. 一步一步建立自己的神经网络