Konfig (JSON)

URL

Hva er URL-byggeren?

Du gir den et JSON-objekt som beskriver delene av en URL — protokoll, vert, sti, query-parametre, hash — og verktøyet gir deg den sammensatte URL-en tilbake, korrekt percent-encoded. Under panseret bruker den nettleserens innebygde URL-API, så utdata matcher nøyaktig hva en nettleser ville produsert hvis du selv bygget URL-en i JavaScript.

Grunnen til at den finnes: å bygge en URL for hånd er der bugs gjemmer seg. Du glemmer å encode et mellomrom i et kundenavn, du dobbel-encoder en skråstrek som allerede var encoded, du blander ? og &, du mister en verdi fordi du brukte + i stedet for %20. WHATWG URL-spesifikasjonen definerer nøyaktig ett riktig svar for hvert input, og det er det du får her. Gjentatte query-nøkler (f.eks. tag=red&tag=blue) støttes ved å sende et array — samme form URLSearchParams godtar.

Den kjører helt i nettleseren din. JSON-konfigen og den sammensatte URL-en forlater aldri maskinen din. Encoding-reglene kommer rett fra RFC 3986 og WHATWG-foredlingene oppå. Kombiner med URL-parseren når du vil sende en URL frem og tilbake gjennom et strukturert skjema.

Slik bruker du URL-byggeren

Tre steg. Hvert steg tilsvarer en knapp på siden.

1

Lim inn en JSON-konfig

Lim inn et JSON-objekt til venstre som beskriver URL-delene. protocol og host er obligatorisk; resten er valgfritt. Klikk på Eksempel for å laste inn et realistisk tilfelle med flere query-parametre og en hash:

{
  "protocol": "https",
  "host": "api.shop.example.com",
  "pathname": "/v1/orders",
  "searchParams": {
    "customer": "Ava Chen",
    "status": "active",
    "total[gte]": "49.99",
    "page": "2"
  },
  "hash": "summary"
}

Valgfrie felt: port, username, password, hash. Inni searchParams er en streng én verdi; et array er gjentatte nøkler.

2

Les den sammensatte URL-en

Høyre panel viser den sammensatte URL-strengen. Mellomrom blir + i query-strengen, hakeparenteser blir %5B/%5D, stien normaliseres — samme encoding som URL-standarden definerer. Oppdaterer mens du skriver.

3

Kopier eller last ned

Klikk på Kopier for å sende URL-en til utklippstavlen, eller Last ned for å lagre den som en tekstfil. Bruk Tøm i inndatapanelet for å starte på nytt.

Når du faktisk ville brukt dette

Lage test-fixtures til en HTTP-klient

Du skriver en test som treffer /v1/orders med åtte query-parametre, der to inneholder mellomrom og én er gjentatt. Å skrive den encodede URL-en for hånd inn i testen er en feilfelle. Bygg den fra et JSON-objekt du kan kopiere fra en ekte request-logg, lim inn URL-en i assertionen. Ferdig.

Bygge OAuth-authorize-URL-er

OAuth-authorize-URL-er proper inn client_id, redirect_uri, scope, state, response_type og code_challenge i query-strengen. RFC 6749 krever akkurat de parameternavnene og en redirect_uri som allerede er encoded én gang før hele URL-en encodes igjen. Byggeren håndterer det transparent — du gir den råverdiene, og den gjør det riktige.

Generere analytics- eller share-URL-er i et skript

Når du genererer en kampanje-URL med UTM-parametre, kommer verdiene ofte fra et regneark der utm_campaign inneholder mellomrom, ampersander og en sjelden emoji. Å la URL-konstruktøren ta seg av encoding er tryggere enn en streng-mal. Utdata er identisk med det Nodes URL-modul ville produsert.

Reprodusere en bug fra en supportsak

En kunde rapporterer at et søk med q=résumé writer gir 500 på API-et. Du vil reprodusere nøyaktig samme request. Bygg URL-en fra JSON, kjør så curl mot den. Aksenten på e-en og mellomrommet blir begge encoded slik nettleseren ville sendt dem — uten gjetting.

Vanlige spørsmål

Hva er forskjellen på URL-byggeren og å lime strenger sammen selv?

Encoding. https://api.example.com/orders?customer=Ava Chen er ikke en gyldig URL — mellomrommet ødelegger den. Byggeren bruker internt URLSearchParams, som encoder mellomrommet som + i query og som %20 i stien. Hjemmelaget streng-sammenslåing bommer på en av dem før eller siden.

Hvordan sender jeg en query-parameter to ganger (f.eks. ?tag=red&tag=blue)?

Bruk et array som verdi: "tag": ["red", "blue"]. Byggeren skriver ut tag=red&tag=blue i rekkefølgen du oppga. Matcher URLSearchParams-spec'en.

Må jeg ha med kolonet etter protokollen (https:), eller bare https?

Begge funker. Byggeren normaliserer både "protocol": "https" og "protocol": "https:" til https:. Samme for http, ftp, mailto og egendefinerte scheme-er.

Kan jeg inkludere credentials (brukernavn/passord) i URL-en?

Ja — sett "username" og "password" i konfigen. De dukker opp foran verten som user:pass@host. Vær oppmerksom på at RFC 3986 §3.2.1 advarer mot dette i produksjons-URL-er fordi de havner i nettleserhistorikk, serverlogger og proxy-cacher.

Hvorfor blir mellomrommet mitt + i stedet for %20?

Mellomrom i query-komponenten blir typisk encoded som + etter reglene i application/x-www-form-urlencoded — det er det URLSearchParams produserer. Mellomrom i stien encodes som %20. Begge er gyldige; servere dekoder begge formene. Hvis serveren din er ødelagt og bare håndterer %20, har du et større problem enn dette verktøyet.

Hvilket format skal selve input-JSON-en følge?

Standard-JSON — se json.org eller ECMA-404 for spec'en. Nøkler er strenger, verdier er strenger eller (for searchParams) streng-arrays. Ingen kommentarer. Ingen etterstilte komma.

Andre URL- & JSON-verktøy

Å bygge er én retning. Her er hva som passer naturlig sammen: