Avatar billede Den er god Praktikant
01. december 2016 - 14:15 Der er 9 kommentarer

Arbejde med Web Servies i MVC5

Hej alle sammen,

Jeg er i gang med at lære MVC og jeg skal kaste mig over emnet "Web Services" imorgen.


Jeg har hørt om Rest Full, Soap, Web Api ( Så det virker forvirrende)
Kan nogen kort sætte nogle ord på forskellen på de 3 og hvad bruger man ud i virksomhederne.?


Forresten når man taler om intregration til CRM, bruger man webservices til dette formål?

Har nogen mulighed fortælle hvordan jeg bruge gribe det an...altås hvad burde jeg læse først ?
Avatar billede arne_v Ekspert
01. december 2016 - 15:11 #1
Der er 2 forskellige typer web services:

RPC style - ligesom normal programmering, man definerer nogle metoder med et antal argumenter og en retur vaerdi

RESTful - man opererer paa data og der er er kun 4 operationer Create, Read, Update, Delete (mappet til POST, GET, PUT og DELETE i HTTP)

SOAP er en specifik form for RPC style baseret paa en lang raekke W3C standarder, den bruger XML og rimelig kompliceret XML.

RESTful vil typisk bruge enten simpel XML eller JSON som format.

.NET har 3 forskellige slags web services:
* .asmx som er SOAP
* WCF som kan bruge baade SOAP og RESTful
* Web API som jeg formoder er RESTful
Avatar billede Slater Ekspert
01. december 2016 - 15:28 #2
#1: Lille rettelse, men de 4 operationer (som har 5 verber, PUT og PATCH er begge tilsvarende update) er bare de mest brugte, der er intet galt i at bruge HEAD, OPTIONS, TRACE, osv. Det er bare ikke så udbredt.

#0:
Men generelt, ja, REST er simplere men mere eller mindre låst til web og HTTP, hvor SOAP har et mere kompliceret format og kræver mere data sendt, men til gengæld er uafhængigt af protokoller, sprog og netværk.

Og bare lige for at gøre det klart, da det kan være forvirrende, REST er hvad protokollen hedder, RESTful er udtrykket for at overholde protokollen. Altså en webservice lavet til at overholde REST er RESTful.
Avatar billede arne_v Ekspert
01. december 2016 - 15:54 #3
PATCH blev fjernet fra HTTP standarden i 1999. Den boer man absolut ikke bruge.

HEAD, OPTIONS, TRACE giver ikke meget mening for REST.

Og nej - REST er ikke en protokol - det er en design stil.
Avatar billede Slater Ekspert
01. december 2016 - 16:20 #4
#3: Det er da overhovedet ikke korrekt.

PATCH lever i bedste velgående, og dens RFC er opdateret i 2010: https://tools.ietf.org/html/rfc5789
Jeg kan slet ikke finde noget på Google om, at den skulle være blevet fjernet.

Og jo, det er lige præcis en protokol. Det er bare ikke en netværksprotokol, men det sagde jeg heller ikke. En protokol er en aftale mellem to parter om, hvordan kommunikation mellem dem skal foregå. Det er netop hvad API standarder er.
Avatar billede arne_v Ekspert
01. december 2016 - 16:32 #5
HTTP 1.1 standard

sektion 9 definerer metoder

sektion 19 om ændringer mellem 1997 og 1999 udgaven:

The PATCH, LINK, UNLINK methods were defined but not commonly implemented in previous versions of this specification.

og 1997 udgaven har PATH under sektion 19.6 med følgende indledning:

19.6 Additional Features

  This appendix documents protocol elements used by some existing HTTP
  implementations, but not consistently and correctly across most
  HTTP/1.1 applications. Implementers should be aware of these
  features, but cannot rely upon their presence in, or interoperability
  with, other HTTP/1.1 applications. Some of these describe proposed
  experimental features, and some describe features that experimental
  deployment found lacking that are now addressed in the base HTTP/1.1
  specification.

====

RFC 5789 definerer en extension til HTTP som diverse HTTP klient og servere kan implementere men ikke behoever at implementere.
Avatar billede arne_v Ekspert
01. december 2016 - 16:37 #6
Forskellen paa en protokol og en stil er at
* en protokol er specifik og det kan objektivt afgøres om en given implementation overholder protokollen eller ej men
* en stil er nogle hoej niveau principper hvor det er et skoen om man foelger principperne eller ej
Avatar billede Slater Ekspert
01. december 2016 - 16:43 #7
#5: Så den er ikke fjernet, man skal bare ikke stole på at den er implementeret - hvilket jo er ligegyldigt, når man laver serveren.

Læser du en næsten hvilken som helst REST ressource på nettet, så anbefales det at man bruger PATCH til dens tiltænkte formål.

Men det er sådan set ligegyldigt, min eneste pointe var, at ingen siger REST skal være begrænset til de 4 verber. Og HEAD og OPTIONS giver fin mening at bruge i nogle situationer. OPTIONS anbefales endda ofte at bruges til at fortælle en API-bruger hvilke metoder er tilgængelige.


#6: Dermed mener du altså, at SOAP er en protokol fordi den har en fastlagt standard, men REST ikke er? Fair nok, det kan vi godt sige, men så er det eddersat'me også nogle små sko du går i, når vi netop sammenligner de to, og det ville være dybt forvirrende ikke at bruge samme ord om begge.
Avatar billede arne_v Ekspert
01. december 2016 - 16:55 #8
PATCH er med i HTTP 1.1 1997 udgaven og ikke med i HTTP 1.1 1999 udgaven. Det kalder jeg at den er fjernet.
Avatar billede arne_v Ekspert
01. december 2016 - 16:56 #9
Hvis du naerlaeser mit foerste indlaeg vil du se at jeg netop ikke sammenligner RESTmed SOAP men sammenligner RPC style med RESTful og derefter naevner SOAP som er form for RPC style.

Det var meget med vilje.

Det er den rigtige maade at strukturere ens terminologi paa.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester