Populære API-er i 2024: Hvordan Utviklere kan Bruke Dem i Flask

Profilbilde av Felix Sandström, artikkelens forfatter

Felix Sandström

API-er (Application Programming Interfaces) er avgjørende for moderne webutvikling, og i 2024 ser vi en økning i bruken av både globale og lokale API-er. Fra sanntidsdata til betalinger og spesialiserte tjenester for Norge, lar API-er deg raskt legge til funksjoner i applikasjoner. I dette innlegget ser jeg på noen av de beste API-ene for utviklere, inkludert norsk-spesifikke, og hvordan de kan brukes i Flask.

Populære API-er

Utforsk kraften i API-er, både globale og norske, for dine applikasjoner.

Hva er et API?

Et API fungerer som en bro mellom applikasjoner, og lar dem dele informasjon eller utføre handlinger. For eksempel kan du bruke et API for å hente værdata, behandle betalinger eller koble til nasjonale tjenester som Brønnøysundregistrene.

Norske API-er

Norge har mange API-er som gir tilgang til spesifikke tjenester som værdata, bedriftsinformasjon, og betalingsløsninger. Disse API-ene er skreddersydd for lokale behov.

1. Vipps API

Vipps er Norges mest populære betalingsløsning, og API-et lar deg legge til raske betalinger i applikasjoner.


    @app.route('/vipps-payment', methods=['POST'])
    def vipps_payment():
        data = {"amount": 100, "transactionText": "Testbetaling"}
        headers = {"Authorization": "Bearer din_api_nøkkel"}
        response = requests.post("https://api.vipps.no/v1/payments", json=data, headers=headers)
        if response.status_code == 200:
            return jsonify(response.json())
        else:
            return jsonify({"error": "Kunne ikke gjennomføre betaling med Vipps"}), response.status_code
    

Vipps gjør det enkelt for norske brukere å betale raskt, og passer perfekt for nettbutikker og andre applikasjoner.

2. Telenor SMS Gateway API

Telenor tilbyr en SMS Gateway for sending av meldinger. Dette er ideelt for varsler og meldinger direkte til brukernes telefoner.


    @app.route('/send-sms', methods=['POST'])
    def send_sms():
        data = {"to": "recipient_number", "message": "Hello from Flask!"}
        headers = {"Authorization": "Bearer din_api_nøkkel"}
        response = requests.post("https://api.telenor.com/sms/v1/messages", json=data, headers=headers)
        if response.status_code == 201:
            return jsonify({"success": "SMS sendt!"})
        else:
            return jsonify({"error": "Kunne ikke sende SMS"}), response.status_code
    

Med Telenor API-et kan du enkelt sende automatiske SMS-varsler fra din applikasjon.

3. Meteorologisk Institutt API (YR)

Dette API-et fra Meteorologisk Institutt tilbyr gratis værdata for Norge og resten av verden. Det er spesielt nyttig for norske applikasjoner som krever nøyaktige værprognoser.


    import requests
    from flask import Flask, jsonify

    app = Flask(__name__)

    @app.route('/weather//')
    def get_weather(lat, lon):
        url = f"https://api.met.no/weatherapi/locationforecast/2.0/compact?lat={lat}&lon={lon}"
        headers = {
            "User-Agent": "MyFlaskApp/1.0 (myemail@example.com)"
        }
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return jsonify(response.json())
        else:
            return jsonify({"error": "Kunne ikke hente værdata"}), response.status_code

    if __name__ == '__main__':
        app.run(debug=True)
    

Dette API-et krever at du legger til en brukervennlig header (User-Agent), men tilbyr detaljerte prognoser for ulike steder i Norge.

4. Altinn API

Altinn er en portal for digitale tjenester i Norge. API-et lar bedrifter og privatpersoner kommunisere med offentlige tjenester.


    import requests
    from flask import Flask, jsonify

    app = Flask(__name__)

    @app.route('/altinn/data')
    def get_altinn_data():
        url = "https://api.altinn.no/v1/resource"
        headers = {"Authorization": "Bearer din_api_nøkkel"}
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return jsonify(response.json())
        else:
            return jsonify({"error": "Kunne ikke hente data fra Altinn"}), response.status_code

    if __name__ == '__main__':
        app.run(debug=True)
    

Altinn API-et er ideelt for applikasjoner som integreres med offentlige tjenester, og det støtter mange typer data.

5. Kartverket API

Kartverket tilbyr API-er for geografisk informasjon, som eiendomsdata, kart, og høydedata. Det er nyttig for applikasjoner som krever detaljerte kartløsninger.


    @app.route('/map-data//')
    def get_map_data(lat, lon):
        url = f"https://ws.geonorge.no/eiendom/v1/nabolagsinfo?lat={lat}&lon={lon}"
        headers = {"User-Agent": "MyFlaskApp/1.0 (myemail@example.com)"}
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return jsonify(response.json())
        else:
            return jsonify({"error": "Kunne ikke hente data fra Kartverket"}), response.status_code
    

Kartverket er en uvurderlig ressurs for applikasjoner som trenger geografisk tilpasning.

6. Brønnøysundregistrene API

Brønnøysundregistrene gir tilgang til offentlig bedriftsinformasjon i Norge. Dette API-et er nyttig for å verifisere selskaper og hente firmainformasjon.


    @app.route('/company-info/')
    def get_company_info(org_number):
        url = f"https://data.brreg.no/enhetsregisteret/api/enheter/{org_number}"
        response = requests.get(url)
        if response.status_code == 200:
            return jsonify(response.json())
        else:
            return jsonify({"error": "Kunne ikke hente bedriftsinformasjon"}), response.status_code
    

Dette API-et er ideelt for applikasjoner som trenger å integrere bedriftsinformasjon i sine systemer.

7. Finn.no API

Finn.no tilbyr API-er for eiendom, stillinger, og andre kategorier.


    @app.route('/finn-ads')
    def get_finn_ads():
        url = "https://api.finn.no/ad/v1/"
        headers = {"Authorization": "Bearer din_api_nøkkel"}
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return jsonify(response.json())
        else:
            return jsonify({"error": "Kunne ikke hente data fra Finn.no"}), response.status_code
    

Perfekt for applikasjoner som trenger å analysere eller vise annonser fra Finn.

8. DNB Open Banking API

DNB tilbyr API-er for kontoinformasjon, betalinger, og andre banktjenester. Dette er et viktig verktøy for fintech-applikasjoner.


    @app.route('/dnb-account-info')
    def get_dnb_account_info():
        url = "https://api.dnb.no/v1/accounts"
        headers = {"Authorization": "Bearer din_api_nøkkel"}
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return jsonify(response.json())
        else:
            return jsonify({"error": "Kunne ikke hente kontoinformasjon fra DNB"}), response.status_code
    

Integrer DNB API-et for å tilby smarte banktjenester i applikasjonene dine.

Globale API-er

Globale API-er gir tilgang til universelle tjenester som lagring, e-post og geolokasjon. Disse API-ene kan brukes i applikasjoner verden over.

1. OpenAI API

OpenAI gir deg tilgang til avanserte språkmodeller som ChatGPT. Her er hvordan du kan bruke OpenAI API til å bygge en chatbot:


    import openai
    from flask import Flask, request, jsonify

    app = Flask(__name__)
    openai.api_key = "din_openai_api_nøkkel"

    @app.route('/chat', methods=['POST'])
    def chat():
        user_input = request.json.get('message')
        response = openai.Completion.create(
            model="gpt-4",
            prompt=user_input,
            max_tokens=150
        )
        return jsonify(response.choices[0].text.strip())

    if __name__ == '__main__':
        app.run(debug=True)
    

Med OpenAI API kan du bygge kraftige, AI-drevne applikasjoner for alt fra kundestøtte til kreativ skriving.

2. Stripe API

Stripe er fortsatt en av de beste betalingsløsningene, og passer godt for norske nettbutikker.


    import stripe
    from flask import Flask, jsonify

    app = Flask(__name__)
    stripe.api_key = "din_api_nøkkel"

    @app.route('/create-payment', methods=['POST'])
    def create_payment():
        try:
            session = stripe.checkout.Session.create(
                payment_method_types=['card'],
                line_items=[{
                    'price_data': {
                        'currency': 'nok',
                        'product_data': {'name': 'Flask Produkt'},
                        'unit_amount': 10000,
                    },
                    'quantity': 1,
                }],
                mode='payment',
                success_url='https://example.com/success',
                cancel_url='https://example.com/cancel',
            )
            return jsonify({'id': session.id})
        except Exception as e:
            return jsonify({'error': str(e)})

    if __name__ == '__main__':
        app.run(debug=True)
    

3. Google Maps Geocoding API

Google Maps Geocoding API er ideelt for applikasjoner som trenger å konvertere adresser til geografiske koordinater eller omvendt. Dette er nyttig for å bygge kartbaserte applikasjoner eller tilby lokasjonsbaserte tjenester.


    @app.route('/geocode/<address>')
    def geocode(address):
        import requests
        from flask import jsonify

        api_key = "din_google_api_nøkkel"
        url = f"https://maps.googleapis.com/maps/api/geocode/json?address={address}&key={api_key}"
        response = requests.get(url)
        
        if response.status_code == 200:
            return jsonify(response.json())
        else:
            return jsonify({"error": "Kunne ikke hente geodata"}), response.status_code
    

Dette API-et er ideelt for å integrere geolokasjon og kartdata i applikasjoner. For eksempel kan du bruke det til å vise en adresse på et kart eller finne nærliggende tjenester basert på koordinater.

4. Amazon S3 API

Amazon S3 API lar deg lagre og hente filer i en skalerbar skylagringsløsning. Det er populært for applikasjoner som trenger sikker og pålitelig lagring for bilder, videoer eller andre filer.


    @app.route('/upload-file', methods=['POST'])
    def upload_file():
        import boto3
        from flask import request, jsonify

        s3 = boto3.client('s3', aws_access_key_id="din_aws_access_key", aws_secret_access_key="din_aws_secret_key")
        file = request.files['file']
        bucket_name = "ditt_bucket_navn"

        try:
            s3.upload_fileobj(file, bucket_name, file.filename)
            return jsonify({"status": "File uploaded successfully"})
        except Exception as e:
            return jsonify({"error": str(e)}), 500
    

Amazon S3 er perfekt for å lagre store datamengder på en kostnadseffektiv måte. Det brukes ofte i nettbutikker, bildegallerier og apper med store filer.

5. SendGrid API

SendGrid API tilbyr en pålitelig løsning for å sende e-poster fra applikasjoner. Det brukes ofte til å sende bekreftelser, nyhetsbrev og transaksjonsmeldinger.


    @app.route('/send-email', methods=['POST'])
    def send_email():
        import sendgrid
        from sendgrid.helpers.mail import Mail
        from flask import request, jsonify

        sg = sendgrid.SendGridAPIClient(api_key="din_sendgrid_api_nøkkel")
        data = request.json
        message = Mail(
            from_email='ditt_email@example.com',
            to_emails=data['to_email'],
            subject=data['subject'],
            html_content=data['html_content']
        )
        try:
            response = sg.send(message)
            return jsonify({"status": "Email sent", "response": response.status_code})
        except Exception as e:
            return jsonify({"error": str(e)}), 500
    

SendGrid API er en enkel måte å sende profesjonelle e-poster direkte fra applikasjonen din uten å bekymre deg for leveringsproblemer.

Resultat og Oppsummering

Ved å bruke API-er som Meteorologisk Institutt, Altinn, Kartverket, Stripe, og OpenAI, kan du bygge moderne applikasjoner som effektivt møter behovene til både lokale og globale brukere. Disse API-ene tilbyr funksjonalitet som ellers ville krevd betydelige utviklingsressurser å utvikle fra bunnen av.

Eksemplene i denne artikkelen viser grunnleggende oppsett, men de fleste implementasjoner vil kreve tilpasninger for å oppfylle spesifikke krav. Husk også at API-spesifikasjoner oppdateres kontinuerlig, så det er viktig å holde seg oppdatert med den nyeste dokumentasjonen fra leverandørene.

Om du trenger hjelp med å sette opp eller tilpasse API-er, er du velkommen til å kontakte meg for veiledning. Sjekk gjerne ut min GitHub for flere eksempler og ideer.

Relaterte Artikler

Kommentarer (0)

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

KONTAKT

Har du spørsmål, ideer eller ønsker å vite mer, er du hjertelig velkommen til å fylle ut kontaktskjemaet, sende en e-post eller ringe.

info@felixwebutvikling.no

+47 40496181

Slettestien 3

4050 Sola

Org.nr: 934 781 864

KONTAKTSKJEMA