NPDD/Baobáxia/Arquitetura
(Diferença entre revisões)
(→API / Rotas de acesso) |
(nova proposta de rotas) |
||
| Linha 13: | Linha 13: | ||
==== API / Rotas de acesso ==== | ==== API / Rotas de acesso ==== | ||
| + | |||
| + | Nova proposta das rotas, padronizando no esquema REST (31/10/2013) | ||
| + | |||
| + | <pre> | ||
| + | |||
| + | # sufixo de [localização] | ||
| + | /[repo]/[mucua] | ||
| + | |||
| + | # mucua | ||
| + | /[repo]/[mucua]/mucua # get data from mucua | ||
| + | |||
| + | # mocambola | ||
| + | /[repo]/[mucua]/mocambola/[user] {get} # get mocambola | ||
| + | /[repo]/[mucua]/mocambola/[user] {put, delete} # update/delete mocambola | ||
| + | |||
| + | # funcionalidades media | ||
| + | /[repo]/[mucua]/media {post} # insere media | ||
| + | /[repo]/[mucua]/media/[uuid] {get} # get media | ||
| + | /[repo]/[mucua]/media/[uuid] {put, delete} # update/delete media | ||
| + | |||
| + | # funcionalidades bbx | ||
| + | /[repo]/[mucua]/bbx/[comando]/[args] | ||
| + | /[repo]/[mucua]/bbx/localsync # sync direto | ||
| + | /[repo]/[mucua]/bbx/netsync # sync net | ||
| + | /[repo]/[mucua]/bbx/syncqueue # mostra lista de sync | ||
| + | /[repo]/[mucua]/bbx/init # inicializa mucua | ||
| + | /[repo]/[mucua]/bbx/remote {post, put, delete) # add/update/del git remote | ||
| + | /[repo]/[mucua]/bbx/viewmucuas {get} # lista mucuas | ||
| + | /[repo]/[mucua]/bbx/diffmucuas/:mucua2 {get} # diff mucuaatual/mucua2) | ||
| + | |||
| + | # busca | ||
| + | /[repo]/[mucua]/bbx/search/[arg1]/[arg2]/... # busca por args | ||
| + | |||
| + | # admin / usuário | ||
| + | /[repo]/[mucua]/login | ||
| + | /login | ||
| + | /logout | ||
| + | /admin/[...] | ||
| + | </pre> | ||
| + | |||
| + | ==== API / Rotas de acesso (proposta anterior) ==== | ||
Outra proposta sobre as rotas, simplificada, do ponto de vista da API: | Outra proposta sobre as rotas, simplificada, do ponto de vista da API: | ||
Edição das 14h38min de 31 de outubro 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
Nova proposta das rotas, padronizando no esquema REST (31/10/2013)
# sufixo de [localização]
/[repo]/[mucua]
# mucua
/[repo]/[mucua]/mucua # get data from mucua
# mocambola
/[repo]/[mucua]/mocambola/[user] {get} # get mocambola
/[repo]/[mucua]/mocambola/[user] {put, delete} # update/delete mocambola
# funcionalidades media
/[repo]/[mucua]/media {post} # insere media
/[repo]/[mucua]/media/[uuid] {get} # get media
/[repo]/[mucua]/media/[uuid] {put, delete} # update/delete media
# funcionalidades bbx
/[repo]/[mucua]/bbx/[comando]/[args]
/[repo]/[mucua]/bbx/localsync # sync direto
/[repo]/[mucua]/bbx/netsync # sync net
/[repo]/[mucua]/bbx/syncqueue # mostra lista de sync
/[repo]/[mucua]/bbx/init # inicializa mucua
/[repo]/[mucua]/bbx/remote {post, put, delete) # add/update/del git remote
/[repo]/[mucua]/bbx/viewmucuas {get} # lista mucuas
/[repo]/[mucua]/bbx/diffmucuas/:mucua2 {get} # diff mucuaatual/mucua2)
# busca
/[repo]/[mucua]/bbx/search/[arg1]/[arg2]/... # busca por args
# admin / usuário
/[repo]/[mucua]/login
/login
/logout
/admin/[...]
API / Rotas de acesso (proposta anterior)
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 (media_detail)
/[repo]/[localizacao]/media/[uuid] {get} # get media (media_list)
/[repo]/[localizacao]/media/[uuid] {put, delete} # update/delete media (media_detail)
# 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
/[repo]/[localizacao]/login
/login
/logout
/admin/[...]
Listagem anterior da API / Rotas
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