Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Rayfin SDK käyttää sisustajavetoista ohjelmointimallia, jossa määrittelet dataskeeman kerran TypeScriptissä ja saat automaattisesti tuotantovalmiit rajapinnat, tyyppiturvalliset asiakkaat ja infrastruktuurin.
Avainkäsitteet
Rayfin SDK yhdistää kolme ydinelementtiä:
- Sisustajapohjainen skeema: Käytä TypeScript-koristelijoita määrittelemään tietomalleja, käyttöoikeuksia ja suhteita.
- Automaattinen API:n generointi: Koristellut luokkasi muuttuvat GraphQL-päätepisteiksi ilman ohjauskoodin kirjoittamista.
- Tyyppiturvalliset asiakkaat: Generoidut TypeScript-asiakkaat tarjoavat käännösaikaisen validoinnin kyselyille ja mutaatioille.
Näin se toimii
Kun luot Fabric-sovelluksen, koodisi kulkee näiden vaiheiden läpi:
| # | Näyttämö | Mitä tapahtuu |
|---|---|---|
| 1 | Kehittäjä | Kirjoitat sovelluksen valitsemassasi editorissa. |
| 2 | TypeScript | Kirjoitat entiteettiluokkia TypeScriptissä. |
| 3 | Koristus | Merkitset luokat ja kentät , @entity@uuid@text@roleja muilla sisustajilla. |
| 4 | Schema | Komentojärjestelmä kääntää koristellut luokat tietokantaskeemaan, käyttöoikeuskäytäntöihin ja API-konfiguraatioon. |
| 5 | Ohjelmointirajapinnat | Skeema julkaistaan GraphQL-päätepisteinä. |
| 6 | Asiakas | Luotu RayfinClient avaa tyyppiturvallisen datan ja autentiusasiakkaan näiden päätepisteiden yli. |
| 7 | Sovellus | Frontend-sovelluksesi käyttää asiakasta datan lukemiseen ja kirjoittamiseen. |
1. Määrittele tietomalleja sisustajien avulla
Määrittelet tietorakenteesi TypeScript-luokkien ja koristelijoiden avulla:@microsoft/rayfin-core
import { entity, uuid, text, int } from '@microsoft/rayfin-core';
@entity()
export class Product {
@uuid() id!: string;
@text() name!: string;
@text({ optional: true }) description?: string;
@int() price!: number;
}
2. Skeeman generointi
Rayfin CLI (npx rayfin) analysoi palkitut luokkasi ja luo:
- Tietokantaskeema – Taulukot, sarakkeet, rajoitteet ja indeksit
- API-konfiguraatio - GraphQL-päätepisteiden määritelmät
- Käyttöoikeuskäytännöt - Rivitason turvallisuus ja kenttätason käyttöoikeuksien hallinta
4. Tyyppiturvallinen asiakaskäyttö
GraphQL-rajapinnat ovat saatavilla CRUD-toimintojen suorittamiseen tietokannassasi. Rayfin SDK tarjoaa dataasiakastoiminnon suoraan datan lukemiseen, kirjoittamiseen tai poistamiseen.
import { RayfinClient } from '@microsoft/rayfin-client';
const client = new RayfinClient();
// TypeScript knows about Product fields
const products = await client.data.products.query()
.select(['id', 'name', 'price'])
.execute();
// Compile-time error if field doesn't exist
const invalid = await client.data.products.query()
.select(['nonexistentField']) // ❌ TypeScript error
.execute();
Sisustusviite
Rayfin SDK tarjoaa koristelijoita yleisille datamallinnusmalleille:
Sisustajat
| Sisustaja | Käyttötarkoitus | Esimerkki |
|---|---|---|
@entity() |
Merkitse luokka tietokanta-entiteetiksi | @entity() class Product |
Kiinteistön sisustajat
| Sisustaja | Tietokantatyyppi | TypeScript-tyyppi |
|---|---|---|
@uuid() |
YKSILÖLLINEN TUNNUS | string |
@text() |
NVARCHAR | string |
@int() |
INT | number |
@decimal() |
DESIMAALI | number |
@bool() |
BITTI | boolean |
@date() |
DATETIME2 | Date |
Luvan sisustajat
| Sisustaja | Käyttötarkoitus |
|---|---|
@role() |
Määrittele roolipohjaiset oikeudet |
Katso Määrittele tietojen käyttöoikeudet valtuutustietojen yksityiskohtia varten.
Kehitystyönkulku
Tyypillinen kehityssykli noudattaa tätä kaavaa:
- Määrittele tai muokkaa tietomalleja - Lisää tai päivitä TypeScript-luokkia koristelujen avulla
-
testaa paikallisesti etäbackendillä - Suorita
npm run devtestataksesi frontend-koodin muutoksia sovelluksen taustalla Fabric. -
Deploy to Fabric - Suorita
npx rayfin upkäyttöönoton hallitulla Fabric-palvelulla ja skeemamuutokset toteutetaan.
Muutokset TypeScript-malleihisi etenevät automaattisesti koko pinossa — tietokantaskeemasta API-päätepisteisiin ja asiakastyyppeihin.
Authorization
Käyttöoikeudet määritellään yhdessä tietomalliesi kanssa koristelijan @role avulla:
@entity()
@role('authenticated', ['create', 'read', 'update', 'delete'], {
policy: (claims, item) => claims.sub.eq(item.userId)
})
export class UserDocument {
@uuid() id!: string;
@text() userId!: string;
@text() content!: string;
}
Tämä lähestymistapa takaa:
- Turvallisuussäännöt elävät niiden suojaamien tietojen rinnalla
- Tyypin turvalliset politiikkalausekkeet havaitsevat virheitä käännösvaiheessa
- Entiteettikenttien refaktorointi päivittää automaattisesti käyttöoikeustarkistukset