Re-judge-gate (frossen v3.1, 11 blinde Opus-4.8-xhigh subagenter, live MS Learn-fetch, G6 Layer A dekket alle fetches). Kvalitetsgate på irreversibelt steg: born-verified stempel krever TO uavhengige alt-grounded pass. 9 ENIGHET (alle claims grounded) → stemplet Verified 2026-07-24 / judge-v3.1: apim-azure-front-door-ai, apim-vs-direct-access-comparison, cost-tracking-apim-policies, developer-portal-ai-apis, multi-region-ai-gateway-design, streaming-support-apim, versioning-ai-api-endpoints, data-versioning-lineage, real-time-streaming-ai 2 UENIGHET (≥1 non-grounded) → pass→flagged, IKKE stemplet (R11 work-list): - security-hardening-ai-gateway: #2 source_silent («20+ security policies» usourcet), #7 not_grounded R8 (feature = Prompt Injection Protection, ikke «Prompt Shields»; indirekte injection-deteksjon ikke dekket) - etl-vs-elt-ai: #2 not_grounded R8 (Gold-lag = curated for reports/dashboards, ikke ML-features) Gaten fanget gull/judge-run-uenighet (jf. gull-friskhet kan invertere adopsjon). Ledger: 94 records, R7.2 9 pass / 40 flagged (validateManifest valid). Stempel = kun Verified/ Verified by-header (body byte-identisk, per-fil invariant-sjekket, atomicWrite). Suite 947/947.
383 lines
14 KiB
Markdown
383 lines
14 KiB
Markdown
# Developer Portal for AI API Discovery & Onboarding
|
|
|
|
**Last updated:** 2026-06-24
|
|
**Status:** GA
|
|
**Category:** API Management & AI Gateway
|
|
**Type:** reference
|
|
**Source:** https://learn.microsoft.com/azure/api-management/developer-portal-overview
|
|
**Verified:** 2026-07-24
|
|
**Verified by:** judge-v3.1
|
|
|
|
---
|
|
|
|
## Innhold
|
|
|
|
- [Introduksjon](#introduksjon)
|
|
- [Portaltilpasning](#portaltilpasning)
|
|
- [API-dokumentasjon](#api-dokumentasjon)
|
|
- [Interaktiv testkonsoll](#interaktiv-testkonsoll)
|
|
- [API-nokkelhondtering](#api-nokkelhondtering)
|
|
- [Selvbetjeningsarbeidsflyt for brukere](#selvbetjeningsarbeidsflyt-for-brukere)
|
|
- [Azure API Center: Komplementaer katalog](#azure-api-center-komplementaer-katalog)
|
|
- [Referanser](#referanser)
|
|
- [For Cosmo](#for-cosmo)
|
|
|
|
## Introduksjon
|
|
|
|
Azure API Managements Developer Portal er en automatisk generert, fullt tilpassbar nettside for API-dokumentasjon og selvbetjening. Nar organisasjoner eksponerer AI-modeller som API-er gjennom APIM, blir Developer Portal den sentrale plattformen der utviklere oppdager tilgjengelige AI-kapabiliteter, tester modeller interaktivt, administrerer API-nokler og overvaker eget forbruk. I tillegg tilbyr Azure API Center et komplementaert API-katalogverktoy.
|
|
|
|
For norsk offentlig sektor er en veladministrert Developer Portal viktig for a fremme gjenbruk av AI-tjenester pa tvers av etater og avdelinger. I samsvar med Digitaliseringsdirektoratets prinsipper om deling av data og tjenester, kan en offentlig tilgjengelig (eller intern) Developer Portal gi oversikt over tilgjengelige AI-API-er, redusere duplikering av arbeid og senke terskelen for a ta i bruk AI i nye prosjekter.
|
|
|
|
Developer Portal tilbyr ut av boksen: API-dokumentasjon med OpenAPI-spesifikasjoner, interaktiv testkonsoll, brukerregistrering og API-nokkelhondtering, samt bruksanalyse. Portalen kan tilpasses med egne stiler, innhold og branding -- og kan ogsa self-hostes for full kontroll.
|
|
|
|
---
|
|
|
|
## Portaltilpasning
|
|
|
|
### Tilpasningsomrader
|
|
|
|
| Omrade | Beskrivelse | Metode |
|
|
|--------|-------------|--------|
|
|
| Visuelt design | Farger, fonter, logo | Visual editor i Azure Portal |
|
|
| Sidelayout | Menyer, sideoppsett, widgets | Drag-and-drop editor |
|
|
| Egendefinert innhold | Sider, guider, FAQ | Markdown/HTML editor |
|
|
| Widgets | API-liste, testconsole, profil | Konfigurerbare widgets |
|
|
| Custom HTML/CSS | Full kontroll over utseende | Kode-editor |
|
|
| Self-hosting | Full kontroll, egen infrastruktur | Open-source kodebase |
|
|
|
|
### Tilpasse Developer Portal for AI-API-er
|
|
|
|
Opprett dedikerte sider for AI-kapabiliteter:
|
|
|
|
**Eksempel: AI API Landing Page**
|
|
|
|
```html
|
|
<!-- Custom page in Developer Portal -->
|
|
<div class="ai-api-overview">
|
|
<h1>AI API Gateway</h1>
|
|
<p>Velkommen til var AI API Gateway. Her finner du dokumentasjon,
|
|
testverktoy og tilgang til AI-modeller.</p>
|
|
|
|
<div class="ai-models-grid">
|
|
<div class="model-card">
|
|
<h3>GPT-4o Chat Completions</h3>
|
|
<p>Generell chatbot og tekstgenerering</p>
|
|
<ul>
|
|
<li>Maks tokens: 128K kontekst</li>
|
|
<li>Responstid: ~500ms</li>
|
|
<li>Pris: Se lisensoversikt</li>
|
|
</ul>
|
|
<a href="/apis/chat-completions">Dokumentasjon</a>
|
|
</div>
|
|
|
|
<div class="model-card">
|
|
<h3>GPT-4o Mini</h3>
|
|
<p>Raskere og rimeligere for enklere oppgaver</p>
|
|
<ul>
|
|
<li>Maks tokens: 128K kontekst</li>
|
|
<li>Responstid: ~200ms</li>
|
|
<li>Pris: 90% rimeligere enn GPT-4o</li>
|
|
</ul>
|
|
<a href="/apis/chat-completions-mini">Dokumentasjon</a>
|
|
</div>
|
|
|
|
<div class="model-card">
|
|
<h3>Embeddings API</h3>
|
|
<p>Tekstembeddings for sok og analyse</p>
|
|
<ul>
|
|
<li>Modell: text-embedding-ada-002</li>
|
|
<li>Dimensjoner: 1536</li>
|
|
</ul>
|
|
<a href="/apis/embeddings">Dokumentasjon</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
```
|
|
|
|
### Branding for norsk offentlig sektor
|
|
|
|
```css
|
|
/* Custom CSS for public sector AI portal */
|
|
:root {
|
|
--portal-primary: #003366; /* Norwegian government blue */
|
|
--portal-secondary: #C8102E; /* Norwegian flag red */
|
|
--portal-background: #F5F5F5;
|
|
--portal-text: #333333;
|
|
--portal-font: 'Source Sans Pro', sans-serif;
|
|
}
|
|
|
|
.navbar {
|
|
background-color: var(--portal-primary);
|
|
}
|
|
|
|
.api-card {
|
|
border-left: 4px solid var(--portal-primary);
|
|
padding: 16px;
|
|
margin-bottom: 12px;
|
|
background: white;
|
|
border-radius: 4px;
|
|
box-shadow: 0 1px 3px rgba(0,0,0,0.12);
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## API-dokumentasjon
|
|
|
|
### Best practices for AI API-dokumentasjon
|
|
|
|
| Seksjon | Innhold |
|
|
|---------|---------|
|
|
| Oversikt | Hva modellen kan, bruksomrader, begrensninger |
|
|
| Autentisering | API-nokkel, OAuth 2.0, Managed Identity |
|
|
| Endepunkter | URL-er, HTTP-metoder, parametere |
|
|
| Request/Response | JSON-schemaer med eksempler |
|
|
| Feilkoder | Standardiserte feilmeldinger |
|
|
| Rate limits | Tokens per minutt, foresporsler per minutt |
|
|
| Bruksretningslinjer | Ansvarlig bruk, innholdspolicy |
|
|
| Kodeeksempler | Python, C#, JavaScript, curl |
|
|
|
|
### Legge til kodeeksempler i portalen
|
|
|
|
OpenAPI-spesifikasjonen kan berikes med eksempler:
|
|
|
|
```yaml
|
|
paths:
|
|
/chat/completions:
|
|
post:
|
|
operationId: createChatCompletion
|
|
summary: Create a chat completion
|
|
description: |
|
|
Genererer et chat completion-svar basert pa meldingshistorikk.
|
|
Stotter bade system-, bruker- og assistentmeldinger.
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChatCompletionRequest'
|
|
examples:
|
|
simple:
|
|
summary: Enkel chatmelding
|
|
value:
|
|
model: gpt-4o
|
|
messages:
|
|
- role: user
|
|
content: "Hva er Microsoft Foundry?"
|
|
max_tokens: 500
|
|
withSystem:
|
|
summary: Med systemprompt
|
|
value:
|
|
model: gpt-4o
|
|
messages:
|
|
- role: system
|
|
content: "Du er en norsk AI-assistent for offentlig sektor."
|
|
- role: user
|
|
content: "Forklar Schrems II for meg."
|
|
max_tokens: 1000
|
|
temperature: 0.3
|
|
```
|
|
|
|
---
|
|
|
|
## Interaktiv testkonsoll
|
|
|
|
### Konfigurere testkonsoll for AI-API-er
|
|
|
|
Developer Portal inkluderer en interaktiv testkonsoll der utviklere kan:
|
|
|
|
1. Velge API-operasjon (f.eks. Chat Completions)
|
|
2. Fylle inn parametere og request body
|
|
3. Sende foresporselen direkte
|
|
4. Se response inkludert token-forbruk
|
|
|
|
### Tilpasse testkonsollen
|
|
|
|
For AI-API-er er det nyttig a pre-populere request body:
|
|
|
|
```json
|
|
{
|
|
"model": "gpt-4o",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "Du er en hjelpsom assistent."
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Skriv din melding her..."
|
|
}
|
|
],
|
|
"max_tokens": 500,
|
|
"temperature": 0.7
|
|
}
|
|
```
|
|
|
|
**Merk:** Testkonsollen bruker automatisk `Ocp-Apim-Subscription-Key` fra brukerens all-access-abonnement. For AI-API-er bor man begrense token-forbruk i test via rate limit policy.
|
|
|
|
### Rate limiting for testkonsoll
|
|
|
|
```xml
|
|
<policies>
|
|
<inbound>
|
|
<base />
|
|
<!-- Lower limits for test console requests -->
|
|
<choose>
|
|
<when condition="@(context.Request.Headers.GetValueOrDefault("Referer", "").Contains("developer"))">
|
|
<rate-limit calls="10" renewal-period="60" />
|
|
<set-header name="x-max-tokens-override" exists-action="override">
|
|
<value>200</value>
|
|
</set-header>
|
|
</when>
|
|
</choose>
|
|
</inbound>
|
|
</policies>
|
|
```
|
|
|
|
---
|
|
|
|
## API-nokkelhondtering
|
|
|
|
### Abonnementsmodell for AI-API-er
|
|
|
|
APIM bruker Products og Subscriptions for tilgangskontroll:
|
|
|
|
| Produkt | Tilgang | Rate Limit | Bruksomrade |
|
|
|---------|---------|-----------|-------------|
|
|
| AI-Sandbox | Fri registrering | 100 tokens/min | Testing og utforskning |
|
|
| AI-Standard | Godkjent | 10 000 tokens/min | Normal produksjon |
|
|
| AI-Premium | Manuell godkjenning | 100 000 tokens/min | Hoyvolum-applikasjoner |
|
|
| AI-Internal | Bare admin | Ubegrenset | Interne systemer |
|
|
|
|
### Bicep: Produktkonfigurasjon
|
|
|
|
```bicep
|
|
resource sandboxProduct 'Microsoft.ApiManagement/service/products@2023-09-01-preview' = {
|
|
parent: apiManagement
|
|
name: 'ai-sandbox'
|
|
properties: {
|
|
displayName: 'AI Sandbox'
|
|
description: 'Fri tilgang til AI-API-er for testing. Begrenset til 100 tokens per minutt.'
|
|
subscriptionRequired: true
|
|
approvalRequired: false
|
|
state: 'published'
|
|
terms: 'Bruk kun til testing. Ikke send sensitiv informasjon.'
|
|
}
|
|
}
|
|
|
|
resource standardProduct 'Microsoft.ApiManagement/service/products@2023-09-01-preview' = {
|
|
parent: apiManagement
|
|
name: 'ai-standard'
|
|
properties: {
|
|
displayName: 'AI Standard'
|
|
description: 'Standard tilgang for godkjente applikasjoner. 10K tokens per minutt.'
|
|
subscriptionRequired: true
|
|
approvalRequired: true
|
|
state: 'published'
|
|
terms: 'Krever godkjenning. Folg retningslinjer for ansvarlig AI-bruk.'
|
|
}
|
|
}
|
|
|
|
resource premiumProduct 'Microsoft.ApiManagement/service/products@2023-09-01-preview' = {
|
|
parent: apiManagement
|
|
name: 'ai-premium'
|
|
properties: {
|
|
displayName: 'AI Premium'
|
|
description: 'Hoyvolum-tilgang for produksjonssystemer. 100K tokens per minutt.'
|
|
subscriptionRequired: true
|
|
approvalRequired: true
|
|
state: 'published'
|
|
}
|
|
}
|
|
```
|
|
|
|
### Brukerregistrering og selvbetjening
|
|
|
|
| Funksjon | Konfigurasjon |
|
|
|----------|--------------|
|
|
| Registrering | Azure AD / Microsoft Entra ID SSO |
|
|
| Abonnementsgodkjenning | Manuell for Standard og Premium |
|
|
| Automatisk nokkelrotasjon | Stottes via portal |
|
|
| Bruksdashboard | Innebygd per abonnement |
|
|
| Notifikasjoner | E-post ved godkjenning/avvisning |
|
|
|
|
---
|
|
|
|
## Selvbetjeningsarbeidsflyt for brukere
|
|
|
|
### Onboarding-prosess
|
|
|
|
```
|
|
1. Bruker besaker Developer Portal
|
|
2. Logger inn med Microsoft Entra ID (SSO)
|
|
3. Blar gjennom tilgjengelige AI-API-er
|
|
4. Velger produkt (Sandbox / Standard / Premium)
|
|
5. Oppretter abonnement
|
|
- Sandbox: Umiddelbar tilgang
|
|
- Standard/Premium: Venter pa godkjenning
|
|
6. Mottar API-nokkel (primaer + sekundaer)
|
|
7. Tester i interaktiv konsoll
|
|
8. Integrerer i applikasjon
|
|
```
|
|
|
|
### Konfigurasjon av Developer Portal-tilgang
|
|
|
|
```xml
|
|
<!-- Restrict developer portal access -->
|
|
<policies>
|
|
<inbound>
|
|
<base />
|
|
<!-- Require Azure AD authentication -->
|
|
<validate-azure-ad-token tenant-id="{{TenantId}}">
|
|
<client-application-ids>
|
|
<application-id>{{DevPortalAppId}}</application-id>
|
|
</client-application-ids>
|
|
</validate-azure-ad-token>
|
|
</inbound>
|
|
</policies>
|
|
```
|
|
|
|
### Deaktivere offentlig registrering
|
|
|
|
For interne AI-portaler, deaktiver fri registrering og bruk Azure AD:
|
|
|
|
1. Ga til Developer Portal > Administrative interface
|
|
2. Under **Identities**, fjern "Username and Password"
|
|
3. Legg til "Azure Active Directory" som eneste identity provider
|
|
4. Under **Settings**, deaktiver "Enable sign-up"
|
|
|
|
---
|
|
|
|
## Azure API Center: Komplementaer katalog
|
|
|
|
For storre organisasjoner kan Azure API Center brukes sammen med APIM Developer Portal:
|
|
|
|
| Egenskap | Developer Portal | API Center |
|
|
|----------|-----------------|------------|
|
|
| Hovedformal | Selvbetjening og testing | Organisatorisk katalog |
|
|
| API-registrering | Fra APIM | Fra flere kilder |
|
|
| MCP-server-registrering | Nei | Ja |
|
|
| Governance-metadata | Begrenset | Omfattende |
|
|
| Synkronisering | -- | Automatisk fra APIM |
|
|
| Copilot Studio-connector | Nei | Ja |
|
|
|
|
---
|
|
|
|
## Referanser
|
|
|
|
- [Azure API Management Developer Portal overview](https://learn.microsoft.com/en-us/azure/api-management/developer-portal-overview) -- oversikt
|
|
- [Tutorial: Access and customize the developer portal](https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-developer-portal-customize) -- tilpasningsveiledning
|
|
- [AI gateway - Developer experience](https://learn.microsoft.com/en-us/azure/api-management/genai-gateway-capabilities#developer-experience) -- AI-spesifikk developer experience
|
|
- [What is Azure API Management?](https://learn.microsoft.com/en-us/azure/api-management/api-management-key-concepts) -- APIM-oversikt
|
|
- [Register and discover MCP servers in API Center](https://learn.microsoft.com/en-us/azure/api-center/register-discover-mcp-server) -- MCP i API Center
|
|
- [Synchronize APIs between API Management and API Center](https://learn.microsoft.com/en-us/azure/api-center/synchronize-api-management-apis) -- synkronisering
|
|
- [API Management subscriptions](https://learn.microsoft.com/en-us/azure/api-management/api-management-subscriptions) -- abonnementshondtering
|
|
- [Self-host the developer portal](https://learn.microsoft.com/en-us/azure/api-management/developer-portal-self-host) -- self-hosting
|
|
|
|
## For Cosmo
|
|
|
|
- **Bruk denne referansen** nar kunden onsker a gjore AI-API-er tilgjengelige for interne eller eksterne utviklere med selvbetjening, dokumentasjon og tilgangskontroll.
|
|
- For norsk offentlig sektor, anbefal alltid Microsoft Entra ID (Azure AD) som identity provider for Developer Portal -- unnga brukernavn/passord-registrering for bedre sikkerhet og sentral brukerstyring.
|
|
- Kombiner APIM Developer Portal med Azure API Center for storre organisasjoner som har API-er fra flere kilder (ikke bare APIM) -- API Center gir en organisatorisk oversikt.
|
|
- Anbefal en produkt-hierarki med Sandbox (fri tilgang, lav limit), Standard (godkjent, normal limit) og Premium (manuell godkjenning, hoy limit) for a gi kontrollert tilgang uten a bremse innovasjon.
|
|
- Developer Portal er tilgjengelig i alle tiers unntatt Consumption -- det vil si Developer, Basic, Standard og Premium (classic) samt alle v2-tiers (Basic v2, Standard v2, Premium v2).
|