- TypeSpec est un nouveau langage pour le développement centré sur les API, conçu pour répondre aux besoins des développeurs, des concepteurs et des responsables d’API
- Conçu dans un contexte où fournir des API de qualité constante et des expériences associées devient de plus en plus complexe et important
- TypeSpec est plus qu’un simple langage : c’est une plateforme qui permet l’abstraction, encourage la réutilisation du code et s’appuie sur des outils modernes pour un développement rapide
Principales caractéristiques de TypeSpec
- Interopérabilité
- TypeSpec n’est pas un simple langage de description d’API, mais un langage de définition de haut niveau pour définir des API et générer simultanément divers protocoles, clients, serveurs, documentation, etc.
- Il est interopérable avec les langages de définition d’API standards de l’industrie, ce qui réduit les écarts entre les différentes options
- Productivité
- TypeSpec offre une excellente expérience développeur pour rendre le travail sur les données et la définition d’API plus fluide et productif
- Le langage est concis et permet de définir des formes de données et d’API complexes avec un minimum d’entrées
- Modèles d’API
- TypeSpec encapsule les types de données courants, les patterns d’API et les directives dans des composants réutilisables de haut niveau partageables à l’échelle d’une équipe ou d’un écosystème, améliorant ainsi la qualité des API
- Familiarité
- TypeSpec s’inspire de TypeScript et C# pour être facile à apprendre et familier à de nombreux développeurs
- Extensibilité
- TypeSpec peut être étendu grâce à un vocabulaire de décorateurs personnalisés et à des templates de type, permettant de modéliser des API dans des domaines de logique métier ou applicative
- Écosystème
- Avec TypeSpec, il est possible d’emballer des types communs, des extensions de langage, des linters et des émetteurs dans des packages à distribuer sur npm au sein d’une organisation ou d’un écosystème
Communauté et collaboration
- Utilisé chez Microsoft
- Microsoft utilise TypeSpec pour transformer son processus de développement d’API
- Beaucoup de services Azure l’adoptent, et leur nombre augmente chaque jour
- L’équipe Microsoft Graph s’appuie sur le potentiel de TypeSpec pour augmenter la productivité et simplifier la personnalisation
- Appel à participation
- TypeSpec est plus qu’un simple langage : c’est une communauté
- Tous les profils de développeurs sont invités à participer à la bêta publique afin de constater eux-mêmes la puissance de TypeSpec
Avis de GN⁺
- TypeSpec apparaît comme un langage de définition d’API à haut niveau d’abstraction, pouvant améliorer de manière révolutionnaire la manière de développer des API
- En prenant en charge l’approche « API First », il devrait aider à améliorer l’efficacité du développement et la qualité du produit final
- Grâce à sa prise en charge de nombreux protocoles, à son extensibilité et à son écosystème solide, il devrait être applicable à un large éventail de scénarios de développement
- Toutefois, l’introduction d’un nouveau langage entraîne toujours des coûts d’apprentissage, donc une formation suffisante devrait précéder son adoption en interne
- Le choix de s’inspirer de la syntaxe de TypeScript et de C# pour réduire la courbe d’apprentissage est positif
- Les points de différenciation avec les langages de définition d’API existants (Swagger, RAML, API Blueprint, etc.) qui remplissent un rôle similaire gagneraient à être clarifiés davantage
- Il serait utile de préciser comment il surmonte les limites des langages existants, la facilité de migration, etc.
- La stratégie de dogfooding menée en premier au sein de Microsoft inspire confiance
- Mais comme le projet n’a été publié en open source que récemment, son évolution continue et le support communautaire seront décisifs dans les prochaines années
- La direction visant à améliorer la standardisation et la réutilisabilité de la conception d’API est pertinente, mais donne aussi l’impression de vouloir résoudre trop de choses à la fois
- Il serait préférable de renforcer progressivement les fonctionnalités par priorisation
1 commentaires
Commentaires Hacker News
ts-json-schema-generator, qui génère directement des schémas JSON depuis TypeScript, peut être une alternative.