NPDD/Baobáxia/Arquitetura
(Diferença entre revisões)
(→Middleware) |
|||
Linha 53: | Linha 53: | ||
/mocambos/taina/bbx/status {taina} -> infos da mucua taina | /mocambos/taina/bbx/status {taina} -> infos da mucua taina | ||
/mocambos/rede/bbx/status {rede} -> infos das mucuas | /mocambos/rede/bbx/status {rede} -> infos das mucuas | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | Outra proposta sobre as rotas, simplificada, do ponto de vista da API: | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | # sufixo de [localização] | ||
+ | /[repo]/[nomemucua] # mucua | ||
+ | /[repo]/local # alias para [mucua] | ||
+ | /[repo]/externo # mucuas externas | ||
+ | /[repo]/rede # todas mucuas | ||
+ | |||
+ | # funcionalidades media | ||
+ | /[repo]/[localizacao]/media {post} # insere media | ||
+ | /[repo]/[localizacao]/media/[uuid] {get} # get media | ||
+ | /[repo]/[localizacao]/media/[uuid] {put, delete} # update/delete media | ||
+ | |||
+ | # funcionalidades bbx | ||
+ | /[repo]/[localizacao]/bbx/[comando]/[args] | ||
+ | /[repo]/[localizacao]/bbx/localsync # sync direto | ||
+ | /[repo]/[localizacao]/bbx/netsync # sync net | ||
+ | /[repo]/[localizacao]/bbx/syncqueue # mostra lista de sync | ||
+ | /[repo]/[localizacao]/bbx/init # inicializa mucua | ||
+ | /[repo]/[localizacao]/bbx/remote {post, put, delete) # add/update/del git remote | ||
+ | /[repo]/[localizacao]/bbx/viewmucuas {get} # lista mucuas | ||
+ | /[repo]/mucuaatual/bbx/diffmucuas/:mucua2 {get} # diff mucuaatual/mucua2) | ||
+ | |||
+ | # busca | ||
+ | /[repo]/[localizacao]/bbx/search/[arg1]/[arg2]/... # busca por args | ||
+ | |||
+ | # admin / usuário | ||
+ | /login | ||
+ | /logout | ||
+ | /admin/[...] | ||
</pre> | </pre> |
Edição das 15h47min de 11 de julho de 2013
Conteúdo |
ID
Backend
Para identificar os arquivos no sistema temos o SHA / CHAVES que o git-annex gera.
Middleware
Temos dois entidades/objetos:
- mucua
- media
- usuario
- repositorio (acervo, bruto, outras redes)
- etiqueta
API / Rotas de acesso
Abaixo, listamos um rascunho dos links de acesso a fucionalidades. O texto abaixo é um exercício de listar caminhos, acesso a funções e variáveis.
/[repositorio]/[mucua] /[repositorio]/local (alias pra mucua atual) /[repositorio]/externo (alias para outras mucuas exceto atual) /[repositorio]/rede (todos) /[repositorio]/kalakuta /mocambos/local/ /[repositorio]/[mucua]/etiqueta1/etiqueta2/etiqueta3 /[repositorio]/[mucua]/mocambola1/etiqueta1 /[repositorio]/[mucua]/mocambola/mocambola1 /[repositorio]/[mucua]/mocambola/vince/etiqueta/documentário /[repositorio]/[mucua]/etiqueta/documentario/mocambola/vince /[repositorio]/[mucua]/etiqueta/:etiqueta/mocambola/:mocambola /[repositorio]/[mucua]/mocambola/:mocambola/etiqueta/:etiqueta /[repositorio]/[mucua]/etiqueta/:historia/:video /mocambos/[mucua]/bbx/search/q=video&alcântara&encontro (busca geral em todos metadados) /[repositorio]/[mucua]/media/:uuid -> getFile(uuid) {get} /[repositorio]/[mucua]/media/ {post,put,delete} -> publishFile() /[repositorio]/[mucua]/media/cfb8e07e-49ab-489b-a4da-70ff8f715640 -> get(arquivo TAL - hash) /mocambos/[mucua]/bbx/localsync {post} /mocambos/[mucua]/bbx/netsync {post} /mocambos/[mucua]/bbx/syncqueue {post} /mocambos/[mucua]/bbx/init {post} /mocambos/[mucua]/bbx/remote {post, put, delete) /mocambos/[local]/bbx/viewmucuas {get} /mocambos/[externo]/bbx/viewmucuas {get} /mocambos/[mucua]/bbx/diffmucuas/:mucua2 {get} (entre atual e mucua 2) /mocambos/[mucua]/bbx/availability/:qtd {get} /mocambos/taina/bbx/status {taina} -> infos da mucua taina /mocambos/rede/bbx/status {rede} -> infos das mucuas
Outra proposta sobre as rotas, simplificada, do ponto de vista da API:
# sufixo de [localização] /[repo]/[nomemucua] # mucua /[repo]/local # alias para [mucua] /[repo]/externo # mucuas externas /[repo]/rede # todas mucuas # funcionalidades media /[repo]/[localizacao]/media {post} # insere media /[repo]/[localizacao]/media/[uuid] {get} # get media /[repo]/[localizacao]/media/[uuid] {put, delete} # update/delete media # funcionalidades bbx /[repo]/[localizacao]/bbx/[comando]/[args] /[repo]/[localizacao]/bbx/localsync # sync direto /[repo]/[localizacao]/bbx/netsync # sync net /[repo]/[localizacao]/bbx/syncqueue # mostra lista de sync /[repo]/[localizacao]/bbx/init # inicializa mucua /[repo]/[localizacao]/bbx/remote {post, put, delete) # add/update/del git remote /[repo]/[localizacao]/bbx/viewmucuas {get} # lista mucuas /[repo]/mucuaatual/bbx/diffmucuas/:mucua2 {get} # diff mucuaatual/mucua2) # busca /[repo]/[localizacao]/bbx/search/[arg1]/[arg2]/... # busca por args # admin / usuário /login /logout /admin/[...]