Slutrapport APFy.me
Innehållsförteckning 1 Inledning... 3 2 Mål och syfte... 3 3 Projektbeskrivning... 3 4 Leverabler... 4 5 Resultat... 4 6 Utvärdering och analys... 4 6.1 Utvärdering av resultat... 4 6.2 Förslag på förbättringar... 4 7 Framtida arbeten... 5
1 Inledning Webben är som bekant fylld med, mer eller mindre, intressant information och funktionalitet. De flesta av oss är mest vana att konsumera informationen med hjälp av en webbläsare som hjälper oss att tolka datan till något som är begripligt för oss människor. Vissa sajter har dessutom öppnat upp för att även maskiner ska kunna prata med och tolka deras information på ett smidigt sätt med hjälp av API:er (i form av Webbservices). Dessa möjliggör integrationer mellan system, både interna och externa, så att information och funktionalitet kan användas och presenteras på olika sätt och i olika syften. Tyvärr är det fortfarande bara en bråkdel av alla webbar som har tillgängliga API:er, ibland är det ett medvetet val, ibland okunskap om vad det är och varför man bör ha det men ofta finns viljan men inte resurser i form av personal, tid och ekonomi. 2 Mål och syfte APFy.me är en tjänst vars syfte är att underlätta uppsättning av API:er i de fall information/funktionalitet redan finns tillgänglig på en vanlig webbsida. Vi vill med tjänsten göra det enklare både för organisationer som vill erbjuda ett API samt för programmerare/utvecklare som idag skrapar data och tolkar HTML för att bygga integrationer. Detta genom att använda de befintliga webbsidorna som datakälla men där informationen omvandlas till välformaterad XML eller Json innan den skickas vidare till anroparen. På så vis går all onödig information att skala bort samt att informationen som faktiskt skickas är i det format anroparen vill ha samt att datan och anropsparametrar dokumenteras och valideras. 3 Projektbeskrivning Projektet har drivits av Andreas Holmberg på [.jo] solutions och huvudsaklig finansiering har kommit från Internetfonden. Projektet har gått ut på att vidareutveckla en befintlig prototyp så att den kan användas i drift samt tillgängliggöra, utbilda och marknadsföra tjänsten. Rent konkret har det handlat om att: 1. Migrera lösningen till en driftsäker server 2. Automatisera validering av utdata 3. Förenkla användargränssnittet 4. Tillgängliggöra källkoden 5. Utbilda och marknadsföra tjänsten Vi har under projektets gång haft tre seminarier, ett i Stockholm, ett i Örebo samt ett i Kathmandu. Seminarierna i Stockholm och Kathmandu var inriktade mot utvecklare och var praktiskt fokuserade där vi tillsammans under seminariernas gång skapade upp API:er från en befintliga webbplatser. Seminariet i Örebro var mer teoretiskt där vi diskuterade mer övergripande på hur tjänsten kan användas i olika syften och scenarion. Där var deltagarna t.ex. affärsutvecklare, projektledare, utvecklare, designers m.fl. Vi har också spridit information om tjänsten genom onlinemarknadsföring på Google, Facebook och LinkedIn samt genom deltagande i diskussionsforum på nätet och genom mejlutskick till svenska webbyråer.
Den feedback vi fått från seminarierna och diskussionerna online har varit väldigt positiv och många bra förslag på vidareutveckling har uppkommit. Utveckling har skett löpande under projektets gång men fokus var på den första delen av projektet. När systemet väl var på plats flyttades fokus till utbildning och diskussioner för att i sista steget övergå till onlinemarknadsföring. 4 Leverabler Användarproducerade API:er Alla API:er finns publika och publicerade på http://www.apfy.me tillsammans med den bakomliggande konfigurationskoden. Vem som helst kan se hur ett API är uppsatt och konfigurerat så att det är enkelt att hitta exempel på hur man kan göra för att konfigurera ett eget. För de som vill konsumera ett API finns även dokumentation om hur man anropar samt exempelkod så att man snabbt kan testa hur det fungerar. Som inloggad kan man dessutom testa API:erna direkt på sajten. Källkod Källkoden till proxyn, som omvandlar den inkommande HTML-koden till snyggt formaterad XML och Json, finns publicerad under GNU General Public Licence v3.0 på GitHub: https://github.com/burken- /APFy.me.Base. 5 Resultat Vi hade hoppats på att ha minst 200 användare vid projektets slut men vi har hittills endast ca. 100 användare i systemet. Däremot har antalet skapade API:er överträffat förväntningarna och är just nu drygt 40 stycken och över 70 metodanrop. Vi har haft 2 seminarier i Sverige samt ett bonusseminarie i Kathmandu. Deltagandet har varit mellan 10-30 personer och utfallet har varit mycket bra. Vi har även deltagit (som deltagare) på en konferens om API:er i Stockholm och diskuterat med andra i branschen. 6 Utvärdering och analys 6.1 Utvärdering av resultat Överlag är vi nöjda med resultatet även om antalet användare inte nått upp till önskat antal. Däremot har vi sett en positiv kurva under de senaste månaderna då aktiviteterna ökat markant på sajten. Tilltron till spridningen i onlineforum har varit lite för hög. Den delen har gått trögare än vi hoppats på, däremot har onlinemarknadsföringen och seminarierna gett väldig bra effekt. 6.2 Förslag på förbättringar För att underlätta ytterligare för de som vill konsumera API:er från APFy.me vore det bra om vi kunde generera klientkod för några av de mest populära programmeringsspråken. För att öka prestandan skulle vi även kunna implementera cacheprotokollet för proxy-servrar vilket skulle göra att APFy.me kan mellanlagra omvandlad data vilket gör att konsumenten snabbare får svar. Vi har under projektet tagit fram en tutorial för hur man steg för steg skapar ett API. Det vore bra att ta fram ytterligare exempel på hur man löser olika svårigheter man kan möta när man skapar API:er men även exempel på användningsområden.
7 Framtida arbeten Vi planerar att hålla fler seminarier samt tala på träffar/konferenser som behandlar ämnen såsom offentlig data, API:er och utveckling. Vi kommer också att fortsätta med marknadsföring på Google då den har hittils har varit mest kostnadseffektiv av de kanaler vi testat. Det mesta av det framtida arbetet kommer att bestå av att bearbeta organisationer som kan tänkas vilja tillgängliggöra sin information samt webbyårer som ofta har behov av att koppla data mellan olika system/sajter på ett enkelt sätt. Vi kommer även att göra viss utveckling av plattformen även om det har lägre prioritet nu när den befintliga är stabil och fungerar som den ska. Vi räknar med att den framtida utvecklingen främst kommer att vara behovsstyrd baserat på önskemål från organisationer och användare.