Skip to content

isbn.v1 #

Constants #

const names_provider = {
	Provider.cbl:               'cbl'
	Provider.mercado_editorial: 'mercado-editorial'
	Provider.open_library:      'open-library'
	Provider.google_books:      'google-books'
}
const uri_isbn = 'https://brasilapi.com.br/api/isbn/v1'

Para referência https://brasilapi.com.br/docs#tag/ISBN/paths/~1isbn~1v1~1{isbn}/get

fn get #

pub fn get(param ParamGet) !ISBN

get Informações sobre o livro a partir do ISBN Caso o provider não seja especificado o padrão é todos os provedores disponíveis.
https://brasilapi.com.br/docs#tag/ISBN/paths/~1isbn~1v1~1%7Bisbn%7D/get

Exemplo de uso:

// get(isbn: '9788532530831', provider: Provider.cbl | .mercado_editorial) { if book := isbn.get(isbn: '9788532530831') { println(book) } else { println(err) }

Caso ocorra algum erro, o retorno será um objeto do tipo IsbnError

fn get_enum_by_name #

pub fn get_enum_by_name(name string) !Provider

enum Provider #

@[flag]
pub enum Provider {
	cbl
	mercado_editorial
	open_library
	google_books
}

fn (Provider) get_names_setad #

pub fn (p Provider) get_names_setad() []string

struct Dimension #

pub struct Dimension {
pub:
	width  f64
	height f64
	unit   string
}

struct ISBN #

pub struct ISBN {
pub:
	isbn         string
	title        string
	subtitle     ?string
	authors      []string
	publisher    string
	synopsis     string
	dimensions   Dimension
	year         u32
	format       string
	page_count   u32
	subjects     []string
	location     string
	retail_price ?f32
	cover_url    ?string
	provider     Provider
}

struct ISBN_ #

@[noinit]
struct ISBN_ {
pub:
	isbn         string
	title        string
	subtitle     ?string
	authors      []string
	publisher    string
	synopsis     string
	dimensions   Dimension
	year         u32
	format       string
	page_count   u32
	subjects     []string
	location     string
	retail_price ?f32
	cover_url    ?string
	provider     string
}

struct ParamGet #

@[params]
pub struct ParamGet {
pub:
	isbn     string   @[required]
	provider Provider = Provider.google_books | .cbl | .open_library | .mercado_editorial
}