Se você já trabalha com Go, muito provavelmente já utilizou algum package com vanity import path (domínio próprio). Packages com domínio próprio são aqueles que não iniciam, por exemplo, com github.com
. Alguns exemplos de package que utilizam vanity import path são go.uber.org/zap
, gorm.io/gorm
e cloud.google.com/go/pubsub
.
Por trás dessas URLs personalizadas, o package continua sendo hospedado em sites como GitHub, Bitbucket ou algum VCS (version control system) próprio. No entanto, para utilizá-lo, ao invés de utilizar o endereço do repositório, utilizamos um domínio customizado.
Além do package passar mais confiança, dar mais visibilidade para sua empresa e etc… utilizar essa estratégia ajuda em casos de migração. Isso por que o endereço do import permanecerá o mesmo, mudando somente o endereço do repositório.
Sem mais delongas, vamos ver o que precisamos fazer para ter um package com domínio próprio.
Tag Meta
O primeiro passo para conseguir ter um package publicado com vanity import path, é criar uma página HTML com a seguinte meta tag.
<meta name="go-import" content="import-prefix vcs repo-root">
Para exemplificar melhor, vamos imaginar que temos o repositório github.com/aprendagolang/router
e que queremos que ele seja utilizado através da URL go.aprendagolang.dev/router
.
Nesse caso, a meta tag ficaria assim:
<meta name="go-import" content="go.aprendagolang.dev/router git <https://github.com/aprendagolang/router>">
Caso você também queria adicionar detalhes sobre o código fonte, a meta tag go-source
precisa ser adicionada no mesmo arquivo.
<meta name="go-source" content="go.aprendagolang.dev/router <https://github.com/aprendagolang/router> <https://github.com/aprendagolang/router/tree/master{/dir}> <https://github.com/aprendagolang/router/blob/master{/dir}/{file}#L{line}>">
Hospedagem e DNS
Caso você não tenha um servidor próprio para hospedar o HTML com as meta tags, poderá utilizar serviços como GitHub Pages ou Netlify.
Com a página publicada, precisamos criar um apontamento DNS do dominio/subdomínio para o local onde a página está hospedada.
⚠️ Como essa etapa de publicação e apontamento é muito especifica de cada provedor, não vou entrar em detalhes de como fazer.
Página publica e DNS apontado, agora é só fazer o import utilizando a URL personalisada.
Espero que tenha gostado. Qualquer dúvida, é só deixar nos comentários.
Até a próxima.