Indsæt din ødelagte .proto her og klik på "Fix Protobuf!!" for at reparere denIndtast ugyldig .proto

Hvad er Protobuf Fixer?

Har du en ødelagt .proto-fil? protoc falder over et enkelt manglende semikolon, en uafsluttet message-krop eller en vildfaren tuborgklamme, og resten af filen er ubrugelig, indtil du finder fejlen. Dette værktøj læser ødelagte Protocol Buffers-skemaer og fikser problemerne automatisk — indsæt det, og vi giver dig en ren version tilbage.

Det tjekker først de ting, protoc snubler over: et manglende syntax = "proto3"; i toppen, manglende semikoloner på feltlinjer, ubalancerede {} i nestede message/enum-kroppe, samt citat- og import-problemer. Outputtet følger de samme regler, som er beskrevet i den officielle proto3-sprogguide og proto3-grammatikreference, så det, du får tilbage, er et skema, protoc faktisk vil acceptere.

Ingen filuploads, ingen skemadeling — din .proto bliver i denne fane. Fix den på sekunder og kom tilbage til at generere bindings.

Sådan Bruger Du Protobuf Fixer

Tre trin. Virker på skemaer hentet ud af et repo, kopieret ud af et code review eller håndredigeret og nu ødelagt.

1

Indsæt Ødelagt .proto eller Hent Eksempel

Smid det ødelagte skema i den venstre editor. Tryk på Eksempel-.proto for at indlæse et eksempel med de typiske fejl — et manglende semikolon efter et felt, en message-krop, der aldrig lukker, og et vildfarent manglende semikolon på syntax-linjen. Eksempel på ødelagt proto:

syntax = "proto3"
message LineItem {
  string sku = 1;
  int32 quantity = 2
  double unit_price = 3;

To fejl her: intet semikolon efter syntaks-deklarationen, og LineItem-blokken lukker aldrig. Begge er typiske for det, fixeren reparerer.

2

Klik på Fix Protobuf!!

Tryk på den grønne Fix Protobuf!!-knap. Fixeren læser skemaet, genopretter manglende semikoloner, balancerer {}-tuborgklammer, normaliserer syntax-deklarationen og sætter korrekte citationstegn på imports. Felt-tags, navne og typer bliver ikke rørt.

3

Gennemgå Det Fiksede Output

Den højre rude har den reparerede .proto. Smid den tilbage i dit projekt og kør protoc for at bekræfte. For skemaer, der driver RPC-tjenester, så kør også et sanity-tjek med vores Protobuf Validator, før du genererer bindings. Alt kører i din browser — skemaet bliver aldrig gemt.

Hvornår Du Faktisk Ville Bruge Det Her

Red et Håndredigeret Skema

Du tilføjede et nyt felt, kom til at slette en tuborgklamme, og nu rapporterer protoc fejl tre messages længere nede. Indsæt filen, få tuborgklammen tilbage, og kom videre — i stedet for at gennemtrawle et 400-linjers skema med øjnene.

Fix LLM-genereret .proto

Bedt en LLM om at lave et udkast til en .proto fra et JSON-eksempel? Strukturen er som regel rigtig, men den glemmer syntax = "proto3";, taber semikoloner eller pakker tingene ind i markdown-hegn. Fixeren rydder op i det.

Reparer Efter et Dårligt Merge

Konfliktmarkører blev løst sjusket og .proto kan ikke kompilere. Kør den gennem fixeren for at få strukturen samlet igen, så du kan gennemgå den egentlige semantiske diff i Git i stedet for at slås med syntaks.

Genskab Skemaer fra Logs eller Dokumenter

Trukket en .proto ud af en wiki-side, en gammel PR-beskrivelse eller et OCR af et skærmbillede? Teksten har som regel vildfarne tegn og ødelagt indrykning. Fixeren bringer den tilbage til noget, protoc accepterer.

Almindelige Spørgsmål

Bliver min .proto-fil gemt eller sendt nogen steder?

Dit skema sendes kun til vores backend for at køre reparationen, og vi gemmer det ikke — så snart svaret kommer tilbage, er det væk. Intet logges sammen med dine data, og der er ingen tredjeparts-trackere i request-stien. Hvis du har et følsomt skema (interne services, ikke-frigivne API'er), så masker identifikatorer, før du indsætter, på samme måde som du ville, hvis du delte det i en offentlig bug-rapport.

Hvilke slags fejl fikser den egentlig?

De almindelige, som protoc afviser: manglende eller forkert syntax-deklaration (den tilføjer syntax = "proto3";, hvis den ikke er der), manglende semikoloner på felt/option/enum-linjer, ubalancerede {} i message/enum/service-blokke, manglende eller ikke-matchende citationstegn på string-options og imports, og åbenlyse slåfejl i nøgleord som repeated eller optional.

Vil den ændre mine felt-tagnumre eller omdøbe noget?

Nej. Fixeren får udtrykkeligt besked på kun at reparere syntaks — aldrig omdøbe messages/felter, ændre tagnumre eller finde på nye felter. Tagnumre er en del af dit wire-format; at røre dem ville bryde bagudkompatibilitet. Hvis outputtet nogensinde ser ud, som om det har ændret semantisk indhold, så behandl det som en bug og lad være med at committe det.

Understøtter den proto2 lige så vel som proto3?

Ja for syntaks-niveau-fixene — manglende semikoloner, ubalancerede tuborgklammer og dårlige syntax-deklarationer håndteres ens uanset hvad. Fixeren respekterer det, der står på syntax-linjen; den flipper ikke et proto2-skema til proto3 (de har forskellig semantik omkring required/optional og defaults).

Hvorfor ikke bare køre protoc og læse fejlen?

Det burde du — protoc er sandhedens kilde. Men dens fejl peger på ét sted ad gangen, og én manglende tuborgklamme kan kaskade til ti efterfølgende fejl. Fixeren er til, når du vil have hele filen blokeret op i ét sus, og så kører du protoc igen for at bekræfte. Tænk på det som et første sweep, ikke en erstatning.

Kan den håndtere store skemaer med mange imports?

Ja, op til et par tusind linjer pr. request. Reparationen kigger kun på filen, du indsætter — den jager ikke import-statements eller henter eksterne skemaer. Hvis dit skema importerer google/protobuf/timestamp.proto eller andre velkendte typer, bevares de imports, som de er.

Andre Protobuf-værktøjer

At fikse syntaksen er første skridt. Når skemaet kompilerer, tager disse værktøjer det resten af vejen: