Orientação gerada a partir de informações públicas. Apenas para referência.
O pacote uri fornece utilitários para criar, analisar e manipular URIs em aplicativos Dart. Ele oferece suporte à análise de modelos de URI compatíveis com o RFC 6570, permitindo a geração dinâmica de URLs com variáveis. Projetado para uso em todas as principais plataformas, integra-se perfeitamente a clientes HTTP e integrações de serviços web. O pacote é mantido pelo Google e oferece uma solução leve e confiável para operações complexas com URIs em projetos Flutter e Dart.
Casos de uso
Construindo URLs de API dinâmicas
Analisando parâmetros de consulta de URIs
Expandindo modelos de URI com variáveis
Manipulação de URIs relativas e absolutas
Integração com clientes HTTP
Validando a estrutura do URI
Principais recursos
Suporte a modelo de URI RFC 6570
Análise e construção robustas
Compatibilidade multiplataforma
Leve e eficiente
Suporta manipulação de string de consulta
Extensível para lógica de URI personalizada
Indicado para
Clientes da API
Integrações de serviço da web
sistemas de roteamento de URL
Pipelines de busca de dados
Camadas de comunicação do backend
Testando interações HTTP
Considerações
Requer manipulação manual da codificação para caracteres especiais
Não destinado à validação completa de URL além da sintaxe
Limitado a operações no nível de URI, não a solicitações HTTP completas
Sem mecanismos embutidos de cache ou repetição
Depende do uso correto da sintaxe de modelo
Pode ser necessário associar com o pacote http para fluxos de trabalho HTTP completos
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
Utilities for working with URIs in Dart, mostly parsing and generating URIs.
UriPattern
UriPattern is an interface for classes that match and parse URIs, much like the Pattern is for Strings. It defines the methods bool matches(Uri uri) and UriMatch match(Uri uri).
UriMatch
UriMatch is the result of UriPattern.match(). It contains the parameters parsed out of a URI and the "rest" of the URI left over after parsing, which is useful for parsing a single URI with multiple relative URI patterns that form a hierarchy.
UriTemplate
UriTemplate is an implementation of RFC 6570 URI Templates. URI Templates are useful for generating URIs from data. UriTemplates are created from a template string, and then expanded with data to generate a URI:
URI templates are strings made up of fixed and variable parts. The variable parts are described with expressions, which are places within single curly-braces: { and }.
Expressions consist of an optional operator and a comma-separated list of variable specifications_. Variable specifications consist of a variable name and an optional modifier. The operator applies to the whole expression and controls how reserved characters are expanded, the prefix and separator, if any, applied to the expansion, and whether to expand the variable as a key/value pair. Modifiers apply to each variable in the expression and allow truncating the value, or "exploding" list and maps into multiple key/value pairs.
Examples
http://example.com/~{username}/
http://example.com/dictionary/{term:1}/{term}
http://example.com/search{?q,lang}
Operators
URI template expansions does more than simple variable replacement, it has facilities for generating paths, fragments, query strings and more. To control the expansion, expressions can use one of the supported operators:
Operator
Description
none
Simple string expansion
+
Reserved string expansion
#
Fragment expansion
.
Label expansion, dot-prefixed
/
Path segments, slash-prefixed
;
Path-style parameters, semicolon-prefixed
?
Form-style query, ampersand-separated
&
Form-style query continuation
Modifiers
Modifiers control
Modifier
Description
none
Default expansion
:n
Prefix: use only the first n characters of the value
*
"Explode" the lists and maps into key/value pairs
UriParser
UriParser parses URIs according to a UriTemplate, extracting parameters based on the variables defined in the template.
Since URI Templates are not designed to be parsable, only a restricted subset of templates can be used for parsing.
Parsable templates have the following restrictions over expandable templates:
URI components must come in order: scheme, host, path, query, fragment.
There can only be one of each component.
Path expressions can only contain one variable.
Multiple expressions must be separated by a literal.
Only the following operators are supported: none, +, #, ?, &
Default and + operators are not allowed in query or fragment components.
Queries can only use the ? or & operator.
The ? operator can only be used once.
Fragments can only use the # operator
UriBuilder
UriBuilder is mutable container of URI components for incrementally building Uris.