Jeg har leget lidt med ActiveResource for at se om det kunne fungere ud af boksen. Desværre er der et par afvigelser, som måske kunne interessere nogle af jer. Her er hvad jeg har fundet
Det store spørgsmål er så hvordan skal ActiveResource modificeres så den kan konsumere en webservice som oiorest? Jeg tænkte på, om man skulle kunne give flere options med (udover site = '...' i modellen) Har i nogle tanker, ideer?
PS:
For bedre at logge hvad der sker, har jeg desuden duck-typet denne fra ActiveResource for at køre igennem en http sniffer (i min environment.rb): module ActiveResource class Connection # Creates new Net::HTTP instance for communication with # remote service and resources. def http # tiljøjet proxyserver/http sniffer Fiddler på http://localhost:8888 http = Net::HTTP.new(@site.host, @site.port, 'localhost', 8888) http.use_ssl = @site.is_a?(URI::HTTPS) http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl http end end end
Nu har jeg ikke arbejdet med activeresource... Men jeg faldt over RestClient som måske kunne være et alternativ til ActiveResource, selvom det ikke giver mulighed for at lave find(2300) operationer etc.
> Jeg har leget lidt med ActiveResource for at se om det kunne fungere > ud af boksen. Desværre er der et par afvigelser, som måske kunne > interessere nogle af jer. Her er hvad jeg har fundet
> Det store spørgsmål er så hvordan skal ActiveResource modificeres så > den kan konsumere en webservice som oiorest? > Jeg tænkte på, om man skulle kunne give flere options med (udover site > = '...' i modellen) > Har i nogle tanker, ideer?
> PS:
> For bedre at logge hvad der sker, har jeg desuden duck-typet denne fra > ActiveResource for at køre igennem en http sniffer > (i min environment.rb): > module ActiveResource > class Connection > # Creates new Net::HTTP instance for communication with > # remote service and resources. > def http > # tiljøjet proxyserver/http sniffer Fiddler på http://localhost:8888 > http = Net::HTTP.new(@site.host, @site.port, > 'localhost', 8888) > http.use_ssl = @site.is_a?(URI::HTTPS) > http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl > http > end > end > end
> Nu har jeg ikke arbejdet med activeresource... > Men jeg faldt over RestClient som måske kunne være et alternativ til > ActiveResource, selvom det ikke giver mulighed for at lave find(2300) > operationer etc.
> > Jeg har leget lidt med ActiveResource for at se om det kunne fungere > > ud af boksen. Desværre er der et par afvigelser, som måske kunne > > interessere nogle af jer. Her er hvad jeg har fundet
> > Sæt en model op til at konsumere postdistrikter
> > Det store spørgsmål er så hvordan skal ActiveResource modificeres så > > den kan konsumere en webservice som oiorest? > > Jeg tænkte på, om man skulle kunne give flere options med (udover site > > = '...' i modellen) > > Har i nogle tanker, ideer?
> > PS:
> > For bedre at logge hvad der sker, har jeg desuden duck-typet denne fra > > ActiveResource for at køre igennem en http sniffer > > (i min environment.rb): > > module ActiveResource > > class Connection > > # Creates new Net::HTTP instance for communication with > > # remote service and resources. > > def http > > # tiljøjet proxyserver/http sniffer Fiddler på > > http://localhost:8888 > > http = Net::HTTP.new(@site.host, @site.port, > > 'localhost', 8888) > > http.use_ssl = @site.is_a?(URI::HTTPS) > > http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl > > http > > end > > end > > end
Tak Christian. Her er det færdige eksempel med de rettelser du har sendt mig i separat mail. Incl. tilføjet monkey-patch fra Rails ticket 8798 (spændende læsning, forresten). http://dev.rubyonrails.org/ticket/8798
Til alles forvirring... Jeg har lavet en basal brugbar løsning, der fungerer mod oios restapi ( http://oiorest.dk/danmark/) Der er i den grad mulighed for forbedringer, se TODO i bunden.
Vedlagt er klassen ActiveOIO, der nedarver fra ActiveResource::Base. Smid den i /lib
Nu kan du lave modellerne Postdistrikt, Sogn, Kommune og Region og lade dem nedarve fra ActiveOIO. Eks:
class Postdistrikt < ActiveOIO # smid selv noget mere i klassen hvis du vil end
TODO ( 1. jeg har kun lavet inflections for de 4 typer, det skal udbygges med resten af de enkle typer fra apiet 2. associationer mellem de forskellige modeller, ala Kommune.find(1234).skoledistrikter, svarende til urlen http://oiorest.dk/danmark/kommuner/751/skoledistrikter 3. søgning, specielt adresser. 4. Unittests eller rspecs eller hvad man nu vælger. Ligenu har jeg bare fået hul igennem, så det er ikke så vildt endnu.
Jesper og jeg har talt om at lave et Google Code projekt, hvis nogen har lyst til at lege med. På den anden side kunne det være rart at vide, hvor IT- og Telestyrelsen har tænkt sig at gå hen med det her, hvornår og under hvilke betingelser, inden man kommer for godt igang... Jeg smider lige herr Jordal en mail også, så kan det være han vil fortælle lidt mere.
Shit. OIO is the shit, og i Sverige har man det bare ikke sån.
Jeg har sammenfattet min svenske erfaring med at gå til den mest
oplagte udbyder af ZIP informationer: Postens websted i en screenshot
af den 80'er-agtige app de har bygget for sine brugere.
Sidste opfølgning indtil videre. Spurgte Finn Jordal om planerne for OIOREST, og her er hans svar.
Hej Christian
Jeg er rigtig glad for at se jeres interesse i OIOREST initiativet, samt at i allerede har kode, som anvender Danmark web servicen - fantastisk.
Danmark web servicens hovedformål har været at eksperimentere med at udstille offentlige data som en REST service, og dens mål er sammen med OIOREST at motivere/muliggøre at myndigheder og andre organisationer til at udstille deres offentlige data.
Danmark web servicens fremtid er ikke afklaret, men vil nok blive brugt fremover, som et eksempel på hvordan data kan udstilles. Dels et eksempel på design af en REST web service; dels kode eksempler i flere forskellige sprog. Der vil nok ikke være det store fokus på at opdatere og validere data.
Hvis i har ideer/kritik/kommentarer til servicen er i meget velkomne til at kontakte mig, og i er selvfølgelig meget velkomne til at tilmelde jer OIOREST workshoppen d. 22. april (http://oiorest.dk)
Mvh. Finn
7chr
-- Christian Dalager Lyongade 19, 2, th 2300 København S mob: 61 770 990 www: http://dalager.com
Et godt input til Finn Jordal herfra listen kunne være at lægge REST url'erne tættere op ad Rails ActiveResource defaults (selvom vi nu har vist at man kan bruge det ved at benytte vores ActiveOIO lib)
ActiveResource defaults'ne kan gøre det endnu lettere for novicer at integrere danmarks ws'erne mod en rails app
> Sidste opfølgning indtil videre. > Spurgte Finn Jordal om planerne for OIOREST, og her er hans svar.
> Hej Christian
> Jeg er rigtig glad for at se jeres interesse i OIOREST initiativet, samt at > i allerede har kode, som anvender Danmark web servicen - fantastisk.
> Danmark web servicens hovedformål har været at eksperimentere med at > udstille offentlige data som en REST service, og dens mål er sammen med > OIOREST at motivere/muliggøre at myndigheder og andre organisationer til at > udstille deres offentlige data.
> Danmark web servicens fremtid er ikke afklaret, men vil nok blive brugt > fremover, som et eksempel på hvordan data kan udstilles. Dels et eksempel på > design af en REST web service; dels kode eksempler i flere forskellige > sprog. Der vil nok ikke være det store fokus på at opdatere og validere > data.
> Hvis i har ideer/kritik/kommentarer til servicen er i meget velkomne til at > kontakte mig, og i er selvfølgelig meget velkomne til at tilmelde jer > OIOREST workshoppen d. 22. april (http://oiorest.dk)
> Mvh. > Finn > 7chr
> -- > Christian Dalager > Lyongade 19, 2, th > 2300 København S > mob: 61 770 990 > www: http://dalager.com