středa 19. března 2025

OpenAPI

Co je to OpenApi a proč by ho měl analytik znát? OpenApi je (překvapivě) specifikace pro popis Api.  Používá JSON nebo YAML a poskytuje standardizovaný způsob, jak definovat endpointy, operace, parametry, odpovědi, autentizaci a další aspekty API. 

Specifikace OpenAPI obsahuje několik klíčových sekcí:

  • Info – Základní informace o API (název, verze, popis).
  • Servers – Seznam dostupných serverů API.
  • Paths – Definice jednotlivých endpointů a jejich operací.
  • Components – Znovupoužitelné definice schémat, parametrů a odpovědí.
  • Security – Popis mechanismů autentizace a autorizace.

A jak to vlastně vypadá:

openapi: 3.0.0
info:
  title: Správa dokumentů API
  description: API pro správu dokumentů v rámci případů
  version: 1.0.0
servers:
  - url: https://api.example.com/v1
security:
  - bearerAuth: []
paths:
  /cases/{caseId}/documents:
    get:
      summary: Získání seznamu dokumentů pro daný případ
      security:
        - bearerAuth: []
      parameters:
        - name: caseId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Seznam dokumentů
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Document'
        '404':
          description: Případ nebyl nalezen
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: "Case not found"
components:
  schemas:
    Document:
      type: object
      properties:
        id:
          type: integer
        filename:
          type: string
        created:
          type: string
          format: date-time
        description:
          type: string
        documentOrigin:
          type: string
          enum: [digital, paper]
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

Analytik by se v tom měl minimálně zorientovat a být schopen zkontrolovat, zda má/nemá k dispozici všechny atributy, které jsou třeba.

úterý 18. března 2025

Příklad nejednoznačně zadaného požadavku

Dnes jsem narazil na pěkný příklad nejednoznačně zadaného požadavku. Zadavatel chtěl průměrný věk zákazníků, kterým banka poskytla úvěr. 

Dejme tomu, že se zákazník narodil 5.1.1982 a banka mu poskytla úvěr 11.11.2024. Jaké číslo započítáte jako věk daného zákazníka?

  • číslo 42, protože zákazníkovi bylo 42 let.
  • číslo 42,85, protože to je přesný věk zákazníka v letech.

Podle zvolené metody výpočtu se samozřejmě bude lišit celkový výsledek a součástí zadání by tedy měla být specifikace způsobu výpočtu.