Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

På baggrund af følgende guides, er det muligt at komme hurtigt i gang anvendelsen af SDKerne. 

Nap-typescript-sdk

Nap-typescript-sdk er den basale SDK. Den udstiller en række metoder og interfaces som vil blive beskrevet i følgende:

...

Code Block
languagejs
import {NAPMessage, NAPEventCatalogue, FHIRValueSetter} from 'nap-typescript-sdk';
import { v4 as UUID } from 'uuid';

const napMessageSessionError: NAPMessage = {
  date: new Date().toISOString(),
  id: UUID(),
  event: {
    type: NAPEventCatalogue.v1.SessionError,
    context: [
      {
        resource: {
          resourceType: FHIRValueSetter.FHIRResourceType.Basic,
          code: {
            coding: [
              {
                code: NAPEventCatalogue.v1.SessionError,
                system: FHIRValueSetter.FHIRSystem.NAP,
              },
            ],
          },
          identifier: [
            {
              system: FHIRValueSetter.FHIRIdentifierSystem.NAPErrorMessage,
              value: 'This is my error message',
            },
            {
              system: FHIRValueSetter.FHIRIdentifierSystem.NAPErrorDescription,
              value: 'This is a longere description of the error message',
            },
          ],
        },
      },
    ],
  },
};

NapTypescriptSdk.send(napMessageSessionError)

Nap-angular-sdk

Hvis du ønsker bruge Angular som udviklingsværktøj er dette SDK smartere at bruge, da det sørger for håndtering Angulars change detection zone for dig.

Da nap-angular-sdk er en angular specifik wrapper af broen, som initialiseres i nap-typescript-sdk, har den en peer dependency til nap-typescript-sdkhertilEt eksempel for

Eksempel på implementing af nap-angular-sdk

Følgende eksempel sender en Session-Open besked og får en SAMLassertion tilbage til at få SAMLassertion kunne se således ud :

Code Block
languagejs
import { NapAngularService } from 'nap-angular-sdk';
import { filterEvents, NAPEventCatalogue, NAPMessage } from 'nap-typescript-sdk';
import { v4 as UUID } from 'uuid';
import { NapAngularService } from 'nap-angular-sdk';
import { filterEvents, NAPEventCatalogue, NAPMessage } from 'nap-typescript-sdk';
import { shareReplay } from 'rxjs/operators';
import { v4 as UUID } from 'uuid';

export class MyComponent {
	
	// proxy for SAMLAssertion
	public session$: Observable<NAPMessage | undefined> = 
		this.napSDK.incomming$.pipe(
		filterEvents([NAPEventCatalogue.v1.SessionOpen, NAPEventCatalogue.v1.SessionClose]),
	);

	constructor(private napSK: NapAngularService) {

		//Construct an SessionOpen NAPMessage
		const napMsg: NAPMessage = {
		date: new Date().toISOString(),
		id: UUID(),
		event: { type: NAPEventCatalogue.v1.SessionOpen },
	};

		// Ask for the SAMLassertion in host
		this.napSDK.sendMessage(napMsg);
	}
}

...

Fuld implementation af eventkataloget ses i nap-reference-web her https://svn.nspop.dk/svn/components/nap/nap-reference-web/trunk/.

Nap-react-sdk

Hvis du ønsker bruge React som udviklingsværktøj er dette SDK smartere at bruge, da det sørger for håndtering state for dig.

Da nap-react-sdk er en react specifik wrapper af broen, som initialiseres i nap-typescript-sdk, har den en peer dependency til nap-typescript-sdkethertilEt eksempel for

Eksempel på implementing af nap-react-sdk

Følgende eksempel til at vise og sende beskeder kunne se således ud:

...