Gå til innhold

Connect API – oversikt

Connect API er server-API-et som Ionic-appen (og web-klienten) snakker med. Det er en ASP.NET Web API-applikasjon på .NET Framework 4.8, hostet på IIS (lokalt JHSVMAPP340-01). API-et eier ingen forretningslogikk mot Visma selv — det kaller VBS-integrasjonen jhlVismaAPI (samme forretningslag som ConnectMonitor), og snakker direkte med en Connect-database per selskap for app-spesifikke data.

Arkitektur

flowchart TB
    APP[Ionic-app / web] -->|HTTPS + JWT Bearer| API[Connect API<br/>ASP.NET Web API .NET 4.8 · IIS]
    API --> BIZ["jhlVismaAPI.Business<br/>(dependencies/jhlVismaAPI.dll)"]
    BIZ --> VBS[Visma Business Services<br/>WCF GenericService] --> VB[(Visma SQL)]
    API --> CSQL[(ConnectSQL per selskap<br/>RefreshTokens, Survey, Deviation)]
    API --> FORMS[(FormsDB / ePortal-DB)]
    API --> EXT[Landax · ABAX · NorTrace · Dottie · SMS · e-post]

    classDef sys fill:#f8d7da,stroke:#b53b46
    class API,BIZ,VBS sys
  • Forretningslag: new jhlVismaAPI.Business(companyID) (DLL i dependencies/jhlVismaAPI.dll) → VBS WCF-tjeneste (VBS_Endpoint) + Visma SQL. Operasjonene er dokumentert under VBS-integrasjon.
  • Connect-database (ConnectSQL_‹selskap›): app-data som RefreshTokens, survey-/kiosk-token, avvik.
  • Forms/ePortal (FormsDBEntities, Eportal_‹selskap›): skjema og timeregistrering (Entity Framework).
  • Multi-tenant: selskap (CompanyID) følger med i token og i alle spørringer; hvert selskap har egne connection strings.

Avhengigheter

Avhengighet Bruk Auth (nøkkelnavn)
Visma Business (VBS) via jhlVismaAPI All ordre-/kunde-/bilagslogikk VBS_Endpoint, VBS_User, sertifikat VBSTestCert
Landax Avvik, skjema/survey, dokumenter, medarbeidere OAuth2 Landax_*
ABAX Kjøretøyposisjoner (flåtekart) OAuth2 ABAXClientId/Secret
Soolo/NorTrace Tanknivå Bearer NorTraceBearer
Dottie Medarbeiderdata API-nøkkel per selskap
SMS (LinkMobility) Målerstand-SMS (webhook + utsending) SMS_*
E-post (SMTP) Kvitteringer, varsler system.net/mailSettings

Biblioteker av betydning: System.IdentityModel.Tokens.Jwt (JWT), RepoDb (RefreshTokens/Survey/Deviation), EntityFramework (Forms/ePortal), Swashbuckle (Swagger), NLog (logg), Microsoft.Data.SqlClient.

Swagger / API-dokumentasjon

Swagger er aktivert via Swashbuckle (SwaggerConfig), tittel «KNAPPHUS CONNECT - API», versjon v1, på /swagger. Se også den innebygde Connect API (Swagger)-siden for utviklere.

Prosjektstruktur

Mappe Innhold
Controllers/ API-endepunkter (+ undermapper Customers, Eportal, Forms, Landax)
Filters/ JwtAuthenticationAttribute, KeyAuthenticationAttribute, feilhåndtering
Helpers/ JwtManager, EncryptionHelper, AbaxHelper, DottieHelper
Repositories/ RefreshTokenRepository, SurveyRepository, DeviationRepository (RepoDb)
Models/ request/response + business objects (BO, Authentication, ABAX)
App_Start/ WebApiConfig, RouteConfig, FilterConfig, SwaggerConfig
Utils/ PDF-generering, CompaniesSection-parser

Ruting er attributtbasert (MapHttpAttributeRoutes) med fallback api/{controller}/{action}. CORS er åpent (Access-Control-Allow-Origin: *).

Undersider

Relaterte sider