Skip to content

Instantly share code, notes, and snippets.

@leandro
Created November 22, 2021 13:05
Show Gist options
  • Save leandro/474e7b3815bc2e6ceedcda04265e0567 to your computer and use it in GitHub Desktop.
Save leandro/474e7b3815bc2e6ceedcda04265e0567 to your computer and use it in GitHub Desktop.
Usando API do abre.ai

Basicamente há duas maneiras: via text/plain (por motivos de retrocompatibilidade) e via application/json. Para você escolher entre um dos dois, basta, primeiramente setar o seu header "content-type" para um dos dois:

  • "Content-Type: text/plain"
  • "Content-Type: application/json"

Para facilitar, deixo abaixo alguns exemplos prontos usando o curl:

$ curl -XPOST -H "Content-Type: text/plain" -d 'url_translation[url]=https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html' https://abre.ai/_/generate
$ https://abre.ai/cFgb

$ curl -XPOST -H "Content-Type: application/json" -d '{"url_translation":{"url":"https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html"}}' https://abre.ai/_/generate
$ {"data":{"id":"1681250","type":"urlTranslation","attributes":{"shortenedUrl":"https://abre.ai/cFgj","token":"cFgj","url":"https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html"}}}

# Com apelido definido
$ curl -XPOST -H "Accept: text/plain" -d 'url_translation[url]=https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html&url_translation[token]=teste-abcd' https://abre.ai/_/generate
$ https://abre.ai/teste-abcd

$ curl -XPOST -H "Content-Type: application/json" -d '{"url_translation":{"url":"https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html", "token":"teste-abcd-2"}}' https://abre.ai/_/generate
$ {"data":{"id":"1681266","type":"urlTranslation","attributes":{"shortenedUrl":"https://abre.ai/teste-abcd-2","token":"teste-abcd-2","url":"https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html"}}}

Vale lembrar que existe um limite de não poder encurtar mais do que 3 URLs a cada 10s com o mesmo IP. Em casos de erro, será retornado erro 400 e alguma explicação no corpo da resposta, como por exemplo:

{"errors":["Não é possível encurtar tantas URLs em tão pouco tempo"]}
@Alynva
Copy link

Alynva commented Jan 10, 2022

Existem tokens com ou sem apelidos com menos do que 4 caracteres? Os tokens sem apelido vão passar de 4 em algum momento, certo? E os sem apelidos não possuem "-", certo?

@leandro
Copy link
Author

leandro commented Jan 10, 2022

@Alynva

Existem tokens com ou sem apelidos com menos do que 4 caracteres?

Existem sim. Os primeiros tinham apenas um dígito.

Os tokens sem apelido vão passar de 4 em algum momento, certo?

Certo.

E os sem apelidos não possuem "-", certo?

Certo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment