HATEOAS-first backend framework.
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

54 linhas
1001 B

  1. import {
  2. application,
  3. resource,
  4. valibot as v,
  5. serializers
  6. } from '../../src';
  7. import {TEXT_SERIALIZER_PAIR} from './serializers';
  8. import {autoIncrement, dataSource} from './data-source';
  9. const Piano = resource(v.object(
  10. {
  11. brand: v.string()
  12. },
  13. v.never()
  14. ))
  15. .name('Piano')
  16. .id('id', {
  17. generationStrategy: autoIncrement,
  18. });
  19. // TODO implement authentication and RBAC on each resource
  20. const User = resource(v.object(
  21. {
  22. firstName: v.string(),
  23. middleName: v.string(),
  24. lastName: v.string(),
  25. bio: v.string(),
  26. birthday: v.datelike()
  27. },
  28. v.never()
  29. ))
  30. .name('User')
  31. .fullText('bio')
  32. .id('id', {
  33. generationStrategy: autoIncrement,
  34. });
  35. const app = application({
  36. name: 'piano-service',
  37. dataSource,
  38. })
  39. .contentType('application/json', serializers.applicationJson)
  40. .contentType('text/json', serializers.textJson)
  41. .contentType('text/plain', TEXT_SERIALIZER_PAIR)
  42. .resource(Piano)
  43. .resource(User);
  44. const server = app.createServer({
  45. baseUrl: '/api'
  46. });
  47. server.listen(3000);