← Område 8 Projekt 3 · Driftsatt applikation med API-funktion Vanliga misstag

Webbserverprogrammering 1 · område 8

Projekt 3 – Driftsatt applikation med API-funktion

Din applikation från Projekt 1 ska lämna din dator. Den ska gå att nå på en riktig adress med HTTPS, med databasen migrerad på servern och inga hemligheter i koden. Den ska dessutom hämta data från ett externt API, och ha ett eget API som svarar med JSON.

Någon annan ska kunna göra om det

Driftsättningen dokumenteras så att någon annan kan göra om den. En applikation som bara du kan få upp på en server är inte driftsatt – den är uppsatt en gång.

Området är kort, och det ligger före slutprojektet med avsikt: ingen ska driftsätta för första gången kvällen före sista inlämningen.

1. Uppdraget

Du börjar inte om. Du tar med dig ditt projekt från område 7 – med roller, lösenorden i user-secrets och sidorna skyddade – och får fyra saker till:

2. Tidsplanen

DatumPassVad ska vara klart
ons 14/457Uppgiften delas ut. Konto i Azure
tis 20/458Etapp 1 före passet: driftklar på din dator. Etapp 2 efter: driftsatt, och länken delad i klassen
ons 21/459Genomgång: JSON och API:er
tis 27/460Etapp 3: det externa API:et och ditt eget, i drift
ons 28/461Etapp 4: redovisning, tre minuter
sön 2/5–Deadline kl 23:59: dokumentationen och sista rättningarna

Tisdag 20/4 är passet då alla driftsätter. Kommer du dit utan att ha prövat driften på din egen dator – etapp 1 – går passet åt till att leta efter fel som hade tagit fem minuter hemma.

3. Så är uppgiften uppdelad

Fyra etapper. Varje etapp har ett datum, en kontroll du gör själv, och de krav som hör till den – på alla tre nivåerna.

NivåVad som skiljer den
EApplikationen är driftsatt och fungerar, och det går att göra om efter din beskrivning
CDu har prövat det som kan gå fel – innan det gick fel – och kan redovisa hur
ADu ser gränserna för din egen lösning, och går längre än guiden där det spelar roll

C-kraven gäller utöver E-kraven, och A-kraven utöver C-kraven – i alla etapper.

Kryssen sparas i din webbläsare, så du kan bocka av allteftersom.

4. Etapp 1 – Driftklar på din dator

Klar före passet tisdag 20/4 · pass 57 · guidens steg 1–6

Applikationen ska gå att köra som servern kommer att köra den: publicerad, i Production, med inställningarna utifrån.

Kontrollen

Guidens steg 6, med ditt projekt. Det publicerade programmet startar i Production, med en databasmapp som inte finns, och:

  • terminalen säger att migrationerna körts
  • din admin kan logga in, med lösenordet från en miljövariabel
  • sidan har sin CSS

Etapp 1 · krav för E

Etapp 1 · krav för C — utöver E

Etappen har inget A-krav. Den är förberedelsen – det som bedöms på A kommer i etapp 2 och 3.

5. Etapp 2 – Driftsatt

Klar efter passet tisdag 20/4 · pass 58 · guidens steg 7–12

Applikationen på Azure App Service, med HTTPS, och länken delad i klassen.

Kontrollen

Guidens steg 11, med din adress:

  • hänglåset, och http:// skickas vidare till https://
  • dina poster från frödatan visas
  • din admin kan logga in
  • utloggad hamnar du på inloggningen när du skriver en skyddad adress

Etapp 2 · krav för E

Etapp 2 · krav för C — utöver E

Etapp 2 · krav för A — utöver C

6. Etapp 3 – API:erna

Klar tisdag 27/4 · pass 59 och 60 · guidens steg 13–19

En sida som hämtar och visar data från ett externt API. Ett eget API som svarar med JSON. Båda i drift.

Välj det externa API:et så att det passar din domän. Wikipedia fungerar för nästan allt; ett annat nyckelfritt API går lika bra. Kräver det en nyckel är den en hemlighet, som lösenorden.

Kontrollen

I drift, på din adress:

  • sidan visar datan från det externa API:et
  • ditt API svarar med JSON på listan och på en post
  • ett id som inte finns ger 404 – som JSON, inte som en sida

Etapp 3 · krav för E

Etapp 3 · krav för C — utöver E

Etapp 3 · krav för A — utöver C

7. Etapp 4 – Redovisning och leverans

Redovisning onsdag 28/4, pass 61 · deadline söndag 2/5 kl 23:59 · guidens steg 20–21

Redovisningen. Tre minuter, på din adress – inte på din dator:

  1. Adressen, och hänglåset
  2. Logga in, och ändra något
  3. Sidan med det externa API:et
  4. Ditt API i webbläsaren, och ett id som inte finns
  5. En sak som gick fel, och hur du hittade felet

DRIFT.md i repots rot är driftsättningen steg för steg. Den ska gå att följa för någon som aldrig sett ditt projekt, med ett eget Azure-konto. Namnen på inställningarna står där – värdena gör det inte. Rubrikerna att utgå från. Blocket går att kopiera – det är en mall, inte kod att öva på:

# Driftsättning – <din applikation>

Adress: https://<ditt namn>.azurewebsites.net

## Det här behövs
## Bygga och packa
## Skapa webbappen i Azure
## Inställningarna
| Namn | Vad den styr |
|---|---|
## Ladda upp
## Kontrollera att det fungerar
## När något går fel
## Hemligheter
Kontrollen

Be en klasskamrat läsa DRIFT.md och säga vilket steg som är oklart. Rätta det.

Inlämningen

  1. Kontrollera etapp 2:s fyra punkter på din adress – inte på din dator.
  2. git grep efter dina lösenord och efter ordet password. Ingen träff.
  3. Läs igenom DRIFT.md och README.md en sista gång.
  4. git add ., git commit -m "…", git push
  5. Öppna repot på github.com. DRIFT.md ska finnas där, och ingen zip och ingen publicera-mapp.
  6. Lämna både adressen och repots adress i itslearning.

Etapp 4 · krav för E

Etapp 4 · krav för C — utöver E

Etapp 4 · krav för A — utöver C

8. Så bedöms den

Projekt 3 har inget prov. Den publicerade applikationen och redovisningen är examinationen, och innehållet kommer tillbaka i slutprovet.

KriteriumVad det betyder här
Driftsättning På E är applikationen driftsatt och fungerar. På C har du prövat den innan och kan redovisa felen. På A ser du gränserna för din lösning.
Samspelet mellan klient och server Statuskoder, JSON och vad som händer när en annan server inte svarar.
Säkerhet HTTPS, och inga hemligheter i repot – nu eller i historiken.
Dokumentation av utvecklingsprocess och färdig produkt DRIFT.md: kan någon annan göra om det?

Jag öppnar din adress och klonar repot. Fyra saker väger tyngst:

9. Vanliga misstag

Det här är det som gör att projektet underkänns i onödan.

MisstagVad som händerUndvik det så här
Driften prövas först i AzurePasset 20/4 går åt till fel som syns på fem minuter lokaltGuidens steg 6, före passet
Zippen innehåller mappen, inte innehålletAzure hittar inget program och visar sin väntsidatar … -C ..\publicera *. Öppna zippen och kontrollera
publicera-mappen eller zippen i repot20 MB byggfiler i git, och nästa publish bygger in demPublicera till ..\publicera, utanför projektmappen
Databasen utanför D:\homeDatan är borta efter nästa publiceringData Source=D:\home\data\…
Kolon i inställningens namnInställningen läses inte, och användaren skapas inteDubbla understreck
Samma lösenord som i Projekt 1Det finns i din git-historik, och är därmed käntNya lösenord i drift. git log -S
API-nyckeln i appsettings.jsonDen ligger i repotuser-secrets lokalt, App Service-inställning i drift
Ingen tidsgräns på klientenSidan väntar i 100 sekunder när API:et inte svararklient.Timeout. Guidens steg 16
new HttpClient() i sidanAnslutningar som inte stängs, och ett API-anrop i presentationslagretAddHttpClient och en klient bakom ett gränssnitt
Entiteten rakt ut i API:etAllt på entiteten blir offentligt, också det du lägger till senareEtt eget svarsobjekt
404 från API:et som en HTML-sidaResults.NotFound() görs om till din inte-hittad-sidaResults.Problem. Guidens steg 15
DRIFT.md skriven sista kvällen, ur minnetStegen stämmer inte, och ingen annan hinner prova denSkriv medan du driftsätter. Låt någon följa den
Lösenordet till den driftsatta appen i README.mdHemligheten ligger i repotLämna det till mig i itslearning