@cmarket/partner-sdk 25.0.0 β 25.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -4
- package/api/oauth-api.ts +1 -1
- package/api/partner-v1-api.ts +1 -1
- package/api/partner-v2-api.ts +40 -8
- package/api/well-known-api.ts +1 -1
- package/api.ts +1 -1
- package/base.ts +1 -1
- package/common.ts +1 -1
- package/configuration.ts +1 -1
- package/dist/api/oauth-api.d.ts +1 -1
- package/dist/api/oauth-api.js +1 -1
- package/dist/api/partner-v1-api.d.ts +1 -1
- package/dist/api/partner-v1-api.js +1 -1
- package/dist/api/partner-v2-api.d.ts +24 -5
- package/dist/api/partner-v2-api.js +35 -9
- package/dist/api/well-known-api.d.ts +1 -1
- package/dist/api/well-known-api.js +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +1 -1
- package/dist/base.d.ts +1 -1
- package/dist/base.js +1 -1
- package/dist/common.d.ts +1 -1
- package/dist/common.js +1 -1
- package/dist/configuration.d.ts +1 -1
- package/dist/configuration.js +1 -1
- package/dist/esm/api/oauth-api.d.ts +1 -1
- package/dist/esm/api/oauth-api.js +1 -1
- package/dist/esm/api/partner-v1-api.d.ts +1 -1
- package/dist/esm/api/partner-v1-api.js +1 -1
- package/dist/esm/api/partner-v2-api.d.ts +24 -5
- package/dist/esm/api/partner-v2-api.js +34 -8
- package/dist/esm/api/well-known-api.d.ts +1 -1
- package/dist/esm/api/well-known-api.js +1 -1
- package/dist/esm/api.d.ts +1 -1
- package/dist/esm/api.js +1 -1
- package/dist/esm/base.d.ts +1 -1
- package/dist/esm/base.js +1 -1
- package/dist/esm/common.d.ts +1 -1
- package/dist/esm/common.js +1 -1
- package/dist/esm/configuration.d.ts +1 -1
- package/dist/esm/configuration.js +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/models/acceptance-result-response-dto.d.ts +1 -1
- package/dist/esm/models/acceptance-result-response-dto.js +1 -1
- package/dist/esm/models/acceptance-result-v1-response-dto.d.ts +1 -1
- package/dist/esm/models/acceptance-result-v1-response-dto.js +1 -1
- package/dist/esm/models/acknowledge-products-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/acknowledge-products-v1-request-dto.js +1 -1
- package/dist/esm/models/authorization-server-metadata-dto.d.ts +1 -1
- package/dist/esm/models/authorization-server-metadata-dto.js +1 -1
- package/dist/esm/models/award-method-public.d.ts +1 -1
- package/dist/esm/models/award-method-public.js +1 -1
- package/dist/esm/models/award-registered-response-dto.d.ts +1 -1
- package/dist/esm/models/award-registered-response-dto.js +1 -1
- package/dist/esm/models/award-registered-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/award-registered-v2-response-dto.js +1 -1
- package/dist/esm/models/bid-attachment-v1-dto.d.ts +1 -1
- package/dist/esm/models/bid-attachment-v1-dto.js +1 -1
- package/dist/esm/models/bid-bond-dto.d.ts +1 -1
- package/dist/esm/models/bid-bond-dto.js +1 -1
- package/dist/esm/models/bid-bond-v1-dto.d.ts +1 -1
- package/dist/esm/models/bid-bond-v1-dto.js +1 -1
- package/dist/esm/models/bid-contact-dto.d.ts +25 -0
- package/dist/esm/models/bid-contact-dto.js +14 -0
- package/dist/esm/models/bid-contacts-dto.d.ts +22 -0
- package/dist/esm/models/bid-contacts-dto.js +14 -0
- package/dist/esm/models/bid-contract-documents-batch-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/bid-contract-documents-batch-v1-request-dto.js +1 -1
- package/dist/esm/models/bid-contract-documents-v1-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-contract-documents-v1-response-dto.js +1 -1
- package/dist/esm/models/bid-created-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-created-response-dto.js +1 -1
- package/dist/esm/models/bid-delivery-terms-dto.d.ts +33 -0
- package/dist/esm/models/bid-delivery-terms-dto.js +14 -0
- package/dist/esm/models/bid-detail-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-detail-response-dto.js +1 -1
- package/dist/esm/models/bid-document-dto.d.ts +1 -1
- package/dist/esm/models/bid-document-dto.js +1 -1
- package/dist/esm/models/bid-document-v1-dto.d.ts +1 -1
- package/dist/esm/models/bid-document-v1-dto.js +1 -1
- package/dist/esm/models/bid-failed-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-failed-response-dto.js +1 -1
- package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
- package/dist/esm/models/bid-failure-reason.d.ts +1 -1
- package/dist/esm/models/bid-failure-reason.js +1 -1
- package/dist/esm/models/bid-item-dto.d.ts +1 -1
- package/dist/esm/models/bid-item-dto.js +1 -1
- package/dist/esm/models/bid-item-v1-dto.d.ts +1 -1
- package/dist/esm/models/bid-item-v1-dto.js +1 -1
- package/dist/esm/models/bid-lifecycle-dto.d.ts +1 -1
- package/dist/esm/models/bid-lifecycle-dto.js +1 -1
- package/dist/esm/models/bid-manager-dto.d.ts +1 -1
- package/dist/esm/models/bid-manager-dto.js +1 -1
- package/dist/esm/models/bid-manager-v1-dto.d.ts +1 -1
- package/dist/esm/models/bid-manager-v1-dto.js +1 -1
- package/dist/esm/models/bid-participant-summary-dto.d.ts +1 -1
- package/dist/esm/models/bid-participant-summary-dto.js +1 -1
- package/dist/esm/models/bid-payment-terms-dto.d.ts +21 -0
- package/dist/esm/models/bid-payment-terms-dto.js +14 -0
- package/dist/esm/models/bid-product-dto.d.ts +37 -0
- package/dist/esm/models/bid-product-dto.js +14 -0
- package/dist/esm/models/bid-public-status.d.ts +1 -4
- package/dist/esm/models/bid-public-status.js +1 -4
- package/dist/esm/models/bid-published-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-published-response-dto.js +1 -1
- package/dist/esm/models/bid-registered-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-registered-response-dto.js +1 -1
- package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
- package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
- package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
- package/dist/esm/models/bid-result-participant-dto.js +1 -1
- package/dist/esm/models/bid-result-v1-attachment-dto.d.ts +1 -1
- package/dist/esm/models/bid-result-v1-attachment-dto.js +1 -1
- package/dist/esm/models/bid-result-v1-bid-product-info-dto.d.ts +1 -1
- package/dist/esm/models/bid-result-v1-bid-product-info-dto.js +1 -1
- package/dist/esm/models/bid-result-v1-participant-dto.d.ts +1 -1
- package/dist/esm/models/bid-result-v1-participant-dto.js +1 -1
- package/dist/esm/models/bid-result-v1-product-dto.d.ts +1 -1
- package/dist/esm/models/bid-result-v1-product-dto.js +1 -1
- package/dist/esm/models/bid-results-batch-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/bid-results-batch-v1-request-dto.js +1 -1
- package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-results-response-dto.js +1 -1
- package/dist/esm/models/bid-results-v1-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-results-v1-response-dto.js +1 -1
- package/dist/esm/models/bid-settlement-line-item-dto.d.ts +1 -1
- package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
- package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
- package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
- package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-settlement-response-dto.js +1 -1
- package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-statement-response-dto.js +1 -1
- package/dist/esm/models/bid-statement-v1-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-statement-v1-response-dto.js +1 -1
- package/dist/esm/models/bid-status.d.ts +1 -1
- package/dist/esm/models/bid-status.js +1 -1
- package/dist/esm/models/bid-summary-dto.d.ts +38 -1
- package/dist/esm/models/bid-summary-dto.js +1 -1
- package/dist/esm/models/bid-updated-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-updated-response-dto.js +1 -1
- package/dist/esm/models/card-payment-request-response-dto.d.ts +1 -1
- package/dist/esm/models/card-payment-request-response-dto.js +1 -1
- package/dist/esm/models/close-sandbox-bid-response-dto.d.ts +1 -1
- package/dist/esm/models/close-sandbox-bid-response-dto.js +1 -1
- package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
- package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
- package/dist/esm/models/complete-acceptance-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/complete-acceptance-v1-request-dto.js +1 -1
- package/dist/esm/models/contract-document-item-dto.d.ts +1 -1
- package/dist/esm/models/contract-document-item-dto.js +1 -1
- package/dist/esm/models/contract-documents-regenerated-response-dto.d.ts +1 -1
- package/dist/esm/models/contract-documents-regenerated-response-dto.js +1 -1
- package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
- package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
- package/dist/esm/models/create-bid-request-dto.d.ts +1 -1
- package/dist/esm/models/create-bid-request-dto.js +1 -1
- package/dist/esm/models/create-bid-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/create-bid-v1-request-dto.js +1 -1
- package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
- package/dist/esm/models/create-card-payment-request-dto.js +1 -1
- package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +1 -1
- package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
- package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
- package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
- package/dist/esm/models/embed-launch-request-dto.d.ts +1 -1
- package/dist/esm/models/embed-launch-request-dto.js +1 -1
- package/dist/esm/models/embed-launch-response-dto.d.ts +1 -1
- package/dist/esm/models/embed-launch-response-dto.js +1 -1
- package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-document-item-dto.js +1 -1
- package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
- package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-item-dto.js +1 -1
- package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
- package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
- package/dist/esm/models/external-document-inputs-dto.js +1 -1
- package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
- package/dist/esm/models/file-uploaded-response-dto.js +1 -1
- package/dist/esm/models/file-uploaded-v1-response-dto.d.ts +1 -1
- package/dist/esm/models/file-uploaded-v1-response-dto.js +1 -1
- package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
- package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
- package/dist/esm/models/health-response-dto.d.ts +1 -1
- package/dist/esm/models/health-response-dto.js +1 -1
- package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
- package/dist/esm/models/hierarchical-region-dto.js +1 -1
- package/dist/esm/models/hierarchical-region-v1-dto.d.ts +1 -1
- package/dist/esm/models/hierarchical-region-v1-dto.js +1 -1
- package/dist/esm/models/index.d.ts +5 -0
- package/dist/esm/models/index.js +5 -0
- package/dist/esm/models/invalid-param-dto.d.ts +1 -1
- package/dist/esm/models/invalid-param-dto.js +1 -1
- package/dist/esm/models/invoice-completed-response-dto.d.ts +1 -1
- package/dist/esm/models/invoice-completed-response-dto.js +1 -1
- package/dist/esm/models/issue-tax-invoice-request-dto.d.ts +1 -1
- package/dist/esm/models/issue-tax-invoice-request-dto.js +1 -1
- package/dist/esm/models/list-bids-response-dto.d.ts +1 -1
- package/dist/esm/models/list-bids-response-dto.js +1 -1
- package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
- package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
- package/dist/esm/models/mark-bid-failed-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/mark-bid-failed-v1-request-dto.js +1 -1
- package/dist/esm/models/negotiation-score-dto.d.ts +1 -1
- package/dist/esm/models/negotiation-score-dto.js +1 -1
- package/dist/esm/models/negotiation-score-v1-dto.d.ts +1 -1
- package/dist/esm/models/negotiation-score-v1-dto.js +1 -1
- package/dist/esm/models/negotiation-scored-response-dto.d.ts +1 -1
- package/dist/esm/models/negotiation-scored-response-dto.js +1 -1
- package/dist/esm/models/negotiation-scored-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/negotiation-scored-v2-response-dto.js +1 -1
- package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
- package/dist/esm/models/oauth-error-response-dto.js +1 -1
- package/dist/esm/models/preconditions-dto.d.ts +1 -1
- package/dist/esm/models/preconditions-dto.js +1 -1
- package/dist/esm/models/preconditions-v1-dto.d.ts +1 -1
- package/dist/esm/models/preconditions-v1-dto.js +1 -1
- package/dist/esm/models/problem-details-dto.d.ts +1 -1
- package/dist/esm/models/problem-details-dto.js +1 -1
- package/dist/esm/models/product-receipt-v1-response-dto.d.ts +1 -1
- package/dist/esm/models/product-receipt-v1-response-dto.js +1 -1
- package/dist/esm/models/product-v1-response-dto.d.ts +1 -1
- package/dist/esm/models/product-v1-response-dto.js +1 -1
- package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
- package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
- package/dist/esm/models/register-award-request-dto.d.ts +1 -1
- package/dist/esm/models/register-award-request-dto.js +1 -1
- package/dist/esm/models/register-award-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/register-award-v1-request-dto.js +1 -1
- package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
- package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
- package/dist/esm/models/request-split-invoice-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/request-split-invoice-v1-request-dto.js +1 -1
- package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
- package/dist/esm/models/retiree-roster-input-dto.js +1 -1
- package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
- package/dist/esm/models/retiree-roster-row-dto.js +1 -1
- package/dist/esm/models/revoke-request-dto.d.ts +1 -1
- package/dist/esm/models/revoke-request-dto.js +1 -1
- package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
- package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
- package/dist/esm/models/split-invoice-v1-response-dto.d.ts +1 -1
- package/dist/esm/models/split-invoice-v1-response-dto.js +1 -1
- package/dist/esm/models/statement-document-dto.d.ts +1 -1
- package/dist/esm/models/statement-document-dto.js +1 -1
- package/dist/esm/models/statement-product-dto.d.ts +1 -1
- package/dist/esm/models/statement-product-dto.js +1 -1
- package/dist/esm/models/statement-v1-document-dto.d.ts +1 -1
- package/dist/esm/models/statement-v1-document-dto.js +1 -1
- package/dist/esm/models/statement-v1-product-dto.d.ts +1 -1
- package/dist/esm/models/statement-v1-product-dto.js +1 -1
- package/dist/esm/models/submit-negotiation-scores-request-dto.d.ts +1 -1
- package/dist/esm/models/submit-negotiation-scores-request-dto.js +1 -1
- package/dist/esm/models/submit-negotiation-scores-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/submit-negotiation-scores-v1-request-dto.js +1 -1
- package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
- package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
- package/dist/esm/models/supplier-tax-type.d.ts +1 -1
- package/dist/esm/models/supplier-tax-type.js +1 -1
- package/dist/esm/models/tax-invoice-issued-response-dto.d.ts +1 -1
- package/dist/esm/models/tax-invoice-issued-response-dto.js +1 -1
- package/dist/esm/models/token-request-dto.d.ts +1 -1
- package/dist/esm/models/token-request-dto.js +1 -1
- package/dist/esm/models/token-response-dto.d.ts +3 -2
- package/dist/esm/models/token-response-dto.js +2 -1
- package/dist/esm/models/update-bid-request-dto.d.ts +1 -1
- package/dist/esm/models/update-bid-request-dto.js +1 -1
- package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
- package/dist/esm/models/upload-file-request-dto.js +1 -1
- package/dist/esm/models/upload-file-v1-request-dto.d.ts +1 -1
- package/dist/esm/models/upload-file-v1-request-dto.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/models/acceptance-result-response-dto.d.ts +1 -1
- package/dist/models/acceptance-result-response-dto.js +1 -1
- package/dist/models/acceptance-result-v1-response-dto.d.ts +1 -1
- package/dist/models/acceptance-result-v1-response-dto.js +1 -1
- package/dist/models/acknowledge-products-v1-request-dto.d.ts +1 -1
- package/dist/models/acknowledge-products-v1-request-dto.js +1 -1
- package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
- package/dist/models/authorization-server-metadata-dto.js +1 -1
- package/dist/models/award-method-public.d.ts +1 -1
- package/dist/models/award-method-public.js +1 -1
- package/dist/models/award-registered-response-dto.d.ts +1 -1
- package/dist/models/award-registered-response-dto.js +1 -1
- package/dist/models/award-registered-v2-response-dto.d.ts +1 -1
- package/dist/models/award-registered-v2-response-dto.js +1 -1
- package/dist/models/bid-attachment-v1-dto.d.ts +1 -1
- package/dist/models/bid-attachment-v1-dto.js +1 -1
- package/dist/models/bid-bond-dto.d.ts +1 -1
- package/dist/models/bid-bond-dto.js +1 -1
- package/dist/models/bid-bond-v1-dto.d.ts +1 -1
- package/dist/models/bid-bond-v1-dto.js +1 -1
- package/dist/models/bid-contact-dto.d.ts +25 -0
- package/dist/models/bid-contact-dto.js +15 -0
- package/dist/models/bid-contacts-dto.d.ts +22 -0
- package/dist/models/bid-contacts-dto.js +15 -0
- package/dist/models/bid-contract-documents-batch-v1-request-dto.d.ts +1 -1
- package/dist/models/bid-contract-documents-batch-v1-request-dto.js +1 -1
- package/dist/models/bid-contract-documents-v1-response-dto.d.ts +1 -1
- package/dist/models/bid-contract-documents-v1-response-dto.js +1 -1
- package/dist/models/bid-created-response-dto.d.ts +1 -1
- package/dist/models/bid-created-response-dto.js +1 -1
- package/dist/models/bid-delivery-terms-dto.d.ts +33 -0
- package/dist/models/bid-delivery-terms-dto.js +15 -0
- package/dist/models/bid-detail-response-dto.d.ts +1 -1
- package/dist/models/bid-detail-response-dto.js +1 -1
- package/dist/models/bid-document-dto.d.ts +1 -1
- package/dist/models/bid-document-dto.js +1 -1
- package/dist/models/bid-document-v1-dto.d.ts +1 -1
- package/dist/models/bid-document-v1-dto.js +1 -1
- package/dist/models/bid-failed-response-dto.d.ts +1 -1
- package/dist/models/bid-failed-response-dto.js +1 -1
- package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
- package/dist/models/bid-failed-v2-response-dto.js +1 -1
- package/dist/models/bid-failure-reason.d.ts +1 -1
- package/dist/models/bid-failure-reason.js +1 -1
- package/dist/models/bid-item-dto.d.ts +1 -1
- package/dist/models/bid-item-dto.js +1 -1
- package/dist/models/bid-item-v1-dto.d.ts +1 -1
- package/dist/models/bid-item-v1-dto.js +1 -1
- package/dist/models/bid-lifecycle-dto.d.ts +1 -1
- package/dist/models/bid-lifecycle-dto.js +1 -1
- package/dist/models/bid-manager-dto.d.ts +1 -1
- package/dist/models/bid-manager-dto.js +1 -1
- package/dist/models/bid-manager-v1-dto.d.ts +1 -1
- package/dist/models/bid-manager-v1-dto.js +1 -1
- package/dist/models/bid-participant-summary-dto.d.ts +1 -1
- package/dist/models/bid-participant-summary-dto.js +1 -1
- package/dist/models/bid-payment-terms-dto.d.ts +21 -0
- package/dist/models/bid-payment-terms-dto.js +15 -0
- package/dist/models/bid-product-dto.d.ts +37 -0
- package/dist/models/bid-product-dto.js +15 -0
- package/dist/models/bid-public-status.d.ts +1 -4
- package/dist/models/bid-public-status.js +1 -4
- package/dist/models/bid-published-response-dto.d.ts +1 -1
- package/dist/models/bid-published-response-dto.js +1 -1
- package/dist/models/bid-registered-response-dto.d.ts +1 -1
- package/dist/models/bid-registered-response-dto.js +1 -1
- package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
- package/dist/models/bid-result-participant-attachment-dto.js +1 -1
- package/dist/models/bid-result-participant-dto.d.ts +1 -1
- package/dist/models/bid-result-participant-dto.js +1 -1
- package/dist/models/bid-result-v1-attachment-dto.d.ts +1 -1
- package/dist/models/bid-result-v1-attachment-dto.js +1 -1
- package/dist/models/bid-result-v1-bid-product-info-dto.d.ts +1 -1
- package/dist/models/bid-result-v1-bid-product-info-dto.js +1 -1
- package/dist/models/bid-result-v1-participant-dto.d.ts +1 -1
- package/dist/models/bid-result-v1-participant-dto.js +1 -1
- package/dist/models/bid-result-v1-product-dto.d.ts +1 -1
- package/dist/models/bid-result-v1-product-dto.js +1 -1
- package/dist/models/bid-results-batch-v1-request-dto.d.ts +1 -1
- package/dist/models/bid-results-batch-v1-request-dto.js +1 -1
- package/dist/models/bid-results-response-dto.d.ts +1 -1
- package/dist/models/bid-results-response-dto.js +1 -1
- package/dist/models/bid-results-v1-response-dto.d.ts +1 -1
- package/dist/models/bid-results-v1-response-dto.js +1 -1
- package/dist/models/bid-settlement-line-item-dto.d.ts +1 -1
- package/dist/models/bid-settlement-line-item-dto.js +1 -1
- package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
- package/dist/models/bid-settlement-participant-dto.js +1 -1
- package/dist/models/bid-settlement-response-dto.d.ts +1 -1
- package/dist/models/bid-settlement-response-dto.js +1 -1
- package/dist/models/bid-statement-response-dto.d.ts +1 -1
- package/dist/models/bid-statement-response-dto.js +1 -1
- package/dist/models/bid-statement-v1-response-dto.d.ts +1 -1
- package/dist/models/bid-statement-v1-response-dto.js +1 -1
- package/dist/models/bid-status.d.ts +1 -1
- package/dist/models/bid-status.js +1 -1
- package/dist/models/bid-summary-dto.d.ts +38 -1
- package/dist/models/bid-summary-dto.js +1 -1
- package/dist/models/bid-updated-response-dto.d.ts +1 -1
- package/dist/models/bid-updated-response-dto.js +1 -1
- package/dist/models/card-payment-request-response-dto.d.ts +1 -1
- package/dist/models/card-payment-request-response-dto.js +1 -1
- package/dist/models/close-sandbox-bid-response-dto.d.ts +1 -1
- package/dist/models/close-sandbox-bid-response-dto.js +1 -1
- package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
- package/dist/models/complete-acceptance-request-dto.js +1 -1
- package/dist/models/complete-acceptance-v1-request-dto.d.ts +1 -1
- package/dist/models/complete-acceptance-v1-request-dto.js +1 -1
- package/dist/models/contract-document-item-dto.d.ts +1 -1
- package/dist/models/contract-document-item-dto.js +1 -1
- package/dist/models/contract-documents-regenerated-response-dto.d.ts +1 -1
- package/dist/models/contract-documents-regenerated-response-dto.js +1 -1
- package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
- package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
- package/dist/models/create-bid-request-dto.d.ts +1 -1
- package/dist/models/create-bid-request-dto.js +1 -1
- package/dist/models/create-bid-v1-request-dto.d.ts +1 -1
- package/dist/models/create-bid-v1-request-dto.js +1 -1
- package/dist/models/create-card-payment-request-dto.d.ts +1 -1
- package/dist/models/create-card-payment-request-dto.js +1 -1
- package/dist/models/create-external-contract-documents-request-dto.d.ts +1 -1
- package/dist/models/create-external-contract-documents-request-dto.js +1 -1
- package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
- package/dist/models/create-external-contract-documents-response-dto.js +1 -1
- package/dist/models/embed-launch-request-dto.d.ts +1 -1
- package/dist/models/embed-launch-request-dto.js +1 -1
- package/dist/models/embed-launch-response-dto.d.ts +1 -1
- package/dist/models/embed-launch-response-dto.js +1 -1
- package/dist/models/external-contract-document-item-dto.d.ts +1 -1
- package/dist/models/external-contract-document-item-dto.js +1 -1
- package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
- package/dist/models/external-contract-documents-response-dto.js +1 -1
- package/dist/models/external-contract-item-dto.d.ts +1 -1
- package/dist/models/external-contract-item-dto.js +1 -1
- package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
- package/dist/models/external-contract-snapshot-dto.js +1 -1
- package/dist/models/external-document-inputs-dto.d.ts +1 -1
- package/dist/models/external-document-inputs-dto.js +1 -1
- package/dist/models/file-uploaded-response-dto.d.ts +1 -1
- package/dist/models/file-uploaded-response-dto.js +1 -1
- package/dist/models/file-uploaded-v1-response-dto.d.ts +1 -1
- package/dist/models/file-uploaded-v1-response-dto.js +1 -1
- package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
- package/dist/models/generated-external-contract-document-dto.js +1 -1
- package/dist/models/health-response-dto.d.ts +1 -1
- package/dist/models/health-response-dto.js +1 -1
- package/dist/models/hierarchical-region-dto.d.ts +1 -1
- package/dist/models/hierarchical-region-dto.js +1 -1
- package/dist/models/hierarchical-region-v1-dto.d.ts +1 -1
- package/dist/models/hierarchical-region-v1-dto.js +1 -1
- package/dist/models/index.d.ts +5 -0
- package/dist/models/index.js +5 -0
- package/dist/models/invalid-param-dto.d.ts +1 -1
- package/dist/models/invalid-param-dto.js +1 -1
- package/dist/models/invoice-completed-response-dto.d.ts +1 -1
- package/dist/models/invoice-completed-response-dto.js +1 -1
- package/dist/models/issue-tax-invoice-request-dto.d.ts +1 -1
- package/dist/models/issue-tax-invoice-request-dto.js +1 -1
- package/dist/models/list-bids-response-dto.d.ts +1 -1
- package/dist/models/list-bids-response-dto.js +1 -1
- package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
- package/dist/models/mark-bid-failed-request-dto.js +1 -1
- package/dist/models/mark-bid-failed-v1-request-dto.d.ts +1 -1
- package/dist/models/mark-bid-failed-v1-request-dto.js +1 -1
- package/dist/models/negotiation-score-dto.d.ts +1 -1
- package/dist/models/negotiation-score-dto.js +1 -1
- package/dist/models/negotiation-score-v1-dto.d.ts +1 -1
- package/dist/models/negotiation-score-v1-dto.js +1 -1
- package/dist/models/negotiation-scored-response-dto.d.ts +1 -1
- package/dist/models/negotiation-scored-response-dto.js +1 -1
- package/dist/models/negotiation-scored-v2-response-dto.d.ts +1 -1
- package/dist/models/negotiation-scored-v2-response-dto.js +1 -1
- package/dist/models/oauth-error-response-dto.d.ts +1 -1
- package/dist/models/oauth-error-response-dto.js +1 -1
- package/dist/models/preconditions-dto.d.ts +1 -1
- package/dist/models/preconditions-dto.js +1 -1
- package/dist/models/preconditions-v1-dto.d.ts +1 -1
- package/dist/models/preconditions-v1-dto.js +1 -1
- package/dist/models/problem-details-dto.d.ts +1 -1
- package/dist/models/problem-details-dto.js +1 -1
- package/dist/models/product-receipt-v1-response-dto.d.ts +1 -1
- package/dist/models/product-receipt-v1-response-dto.js +1 -1
- package/dist/models/product-v1-response-dto.d.ts +1 -1
- package/dist/models/product-v1-response-dto.js +1 -1
- package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
- package/dist/models/protected-resource-metadata-dto.js +1 -1
- package/dist/models/register-award-request-dto.d.ts +1 -1
- package/dist/models/register-award-request-dto.js +1 -1
- package/dist/models/register-award-v1-request-dto.d.ts +1 -1
- package/dist/models/register-award-v1-request-dto.js +1 -1
- package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
- package/dist/models/register-semo-contract-request-dto.js +1 -1
- package/dist/models/request-split-invoice-v1-request-dto.d.ts +1 -1
- package/dist/models/request-split-invoice-v1-request-dto.js +1 -1
- package/dist/models/retiree-roster-input-dto.d.ts +1 -1
- package/dist/models/retiree-roster-input-dto.js +1 -1
- package/dist/models/retiree-roster-row-dto.d.ts +1 -1
- package/dist/models/retiree-roster-row-dto.js +1 -1
- package/dist/models/revoke-request-dto.d.ts +1 -1
- package/dist/models/revoke-request-dto.js +1 -1
- package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
- package/dist/models/semo-contract-registered-response-dto.js +1 -1
- package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
- package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
- package/dist/models/split-invoice-v1-response-dto.d.ts +1 -1
- package/dist/models/split-invoice-v1-response-dto.js +1 -1
- package/dist/models/statement-document-dto.d.ts +1 -1
- package/dist/models/statement-document-dto.js +1 -1
- package/dist/models/statement-product-dto.d.ts +1 -1
- package/dist/models/statement-product-dto.js +1 -1
- package/dist/models/statement-v1-document-dto.d.ts +1 -1
- package/dist/models/statement-v1-document-dto.js +1 -1
- package/dist/models/statement-v1-product-dto.d.ts +1 -1
- package/dist/models/statement-v1-product-dto.js +1 -1
- package/dist/models/submit-negotiation-scores-request-dto.d.ts +1 -1
- package/dist/models/submit-negotiation-scores-request-dto.js +1 -1
- package/dist/models/submit-negotiation-scores-v1-request-dto.d.ts +1 -1
- package/dist/models/submit-negotiation-scores-v1-request-dto.js +1 -1
- package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
- package/dist/models/supplier-card-payable-response-dto.js +1 -1
- package/dist/models/supplier-tax-type.d.ts +1 -1
- package/dist/models/supplier-tax-type.js +1 -1
- package/dist/models/tax-invoice-issued-response-dto.d.ts +1 -1
- package/dist/models/tax-invoice-issued-response-dto.js +1 -1
- package/dist/models/token-request-dto.d.ts +1 -1
- package/dist/models/token-request-dto.js +1 -1
- package/dist/models/token-response-dto.d.ts +3 -2
- package/dist/models/token-response-dto.js +2 -1
- package/dist/models/update-bid-request-dto.d.ts +1 -1
- package/dist/models/update-bid-request-dto.js +1 -1
- package/dist/models/upload-file-request-dto.d.ts +1 -1
- package/dist/models/upload-file-request-dto.js +1 -1
- package/dist/models/upload-file-v1-request-dto.d.ts +1 -1
- package/dist/models/upload-file-v1-request-dto.js +1 -1
- package/docs/BidContactDto.md +24 -0
- package/docs/BidContactsDto.md +22 -0
- package/docs/BidDeliveryTermsDto.md +28 -0
- package/docs/BidPaymentTermsDto.md +22 -0
- package/docs/BidProductDto.md +30 -0
- package/docs/BidPublicStatus.md +0 -1
- package/docs/BidSummaryDto.md +16 -0
- package/docs/PartnerV2Api.md +10 -1
- package/docs/TokenResponseDto.md +1 -1
- package/index.ts +1 -1
- package/models/acceptance-result-response-dto.ts +1 -1
- package/models/acceptance-result-v1-response-dto.ts +1 -1
- package/models/acknowledge-products-v1-request-dto.ts +1 -1
- package/models/authorization-server-metadata-dto.ts +1 -1
- package/models/award-method-public.ts +1 -1
- package/models/award-registered-response-dto.ts +1 -1
- package/models/award-registered-v2-response-dto.ts +1 -1
- package/models/bid-attachment-v1-dto.ts +1 -1
- package/models/bid-bond-dto.ts +1 -1
- package/models/bid-bond-v1-dto.ts +1 -1
- package/models/bid-contact-dto.ts +31 -0
- package/models/bid-contacts-dto.ts +30 -0
- package/models/bid-contract-documents-batch-v1-request-dto.ts +1 -1
- package/models/bid-contract-documents-v1-response-dto.ts +1 -1
- package/models/bid-created-response-dto.ts +1 -1
- package/models/bid-delivery-terms-dto.ts +39 -0
- package/models/bid-detail-response-dto.ts +1 -1
- package/models/bid-document-dto.ts +1 -1
- package/models/bid-document-v1-dto.ts +1 -1
- package/models/bid-failed-response-dto.ts +1 -1
- package/models/bid-failed-v2-response-dto.ts +1 -1
- package/models/bid-failure-reason.ts +1 -1
- package/models/bid-item-dto.ts +1 -1
- package/models/bid-item-v1-dto.ts +1 -1
- package/models/bid-lifecycle-dto.ts +1 -1
- package/models/bid-manager-dto.ts +1 -1
- package/models/bid-manager-v1-dto.ts +1 -1
- package/models/bid-participant-summary-dto.ts +1 -1
- package/models/bid-payment-terms-dto.ts +27 -0
- package/models/bid-product-dto.ts +43 -0
- package/models/bid-public-status.ts +1 -4
- package/models/bid-published-response-dto.ts +1 -1
- package/models/bid-registered-response-dto.ts +1 -1
- package/models/bid-result-participant-attachment-dto.ts +1 -1
- package/models/bid-result-participant-dto.ts +1 -1
- package/models/bid-result-v1-attachment-dto.ts +1 -1
- package/models/bid-result-v1-bid-product-info-dto.ts +1 -1
- package/models/bid-result-v1-participant-dto.ts +1 -1
- package/models/bid-result-v1-product-dto.ts +1 -1
- package/models/bid-results-batch-v1-request-dto.ts +1 -1
- package/models/bid-results-response-dto.ts +1 -1
- package/models/bid-results-v1-response-dto.ts +1 -1
- package/models/bid-settlement-line-item-dto.ts +1 -1
- package/models/bid-settlement-participant-dto.ts +1 -1
- package/models/bid-settlement-response-dto.ts +1 -1
- package/models/bid-statement-response-dto.ts +1 -1
- package/models/bid-statement-v1-response-dto.ts +1 -1
- package/models/bid-status.ts +1 -1
- package/models/bid-summary-dto.ts +48 -1
- package/models/bid-updated-response-dto.ts +1 -1
- package/models/card-payment-request-response-dto.ts +1 -1
- package/models/close-sandbox-bid-response-dto.ts +1 -1
- package/models/complete-acceptance-request-dto.ts +1 -1
- package/models/complete-acceptance-v1-request-dto.ts +1 -1
- package/models/contract-document-item-dto.ts +1 -1
- package/models/contract-documents-regenerated-response-dto.ts +1 -1
- package/models/contract-restriction-confirm-input-dto.ts +1 -1
- package/models/create-bid-request-dto.ts +1 -1
- package/models/create-bid-v1-request-dto.ts +1 -1
- package/models/create-card-payment-request-dto.ts +1 -1
- package/models/create-external-contract-documents-request-dto.ts +1 -1
- package/models/create-external-contract-documents-response-dto.ts +1 -1
- package/models/embed-launch-request-dto.ts +1 -1
- package/models/embed-launch-response-dto.ts +1 -1
- package/models/external-contract-document-item-dto.ts +1 -1
- package/models/external-contract-documents-response-dto.ts +1 -1
- package/models/external-contract-item-dto.ts +1 -1
- package/models/external-contract-snapshot-dto.ts +1 -1
- package/models/external-document-inputs-dto.ts +1 -1
- package/models/file-uploaded-response-dto.ts +1 -1
- package/models/file-uploaded-v1-response-dto.ts +1 -1
- package/models/generated-external-contract-document-dto.ts +1 -1
- package/models/health-response-dto.ts +1 -1
- package/models/hierarchical-region-dto.ts +1 -1
- package/models/hierarchical-region-v1-dto.ts +1 -1
- package/models/index.ts +5 -0
- package/models/invalid-param-dto.ts +1 -1
- package/models/invoice-completed-response-dto.ts +1 -1
- package/models/issue-tax-invoice-request-dto.ts +1 -1
- package/models/list-bids-response-dto.ts +1 -1
- package/models/mark-bid-failed-request-dto.ts +1 -1
- package/models/mark-bid-failed-v1-request-dto.ts +1 -1
- package/models/negotiation-score-dto.ts +1 -1
- package/models/negotiation-score-v1-dto.ts +1 -1
- package/models/negotiation-scored-response-dto.ts +1 -1
- package/models/negotiation-scored-v2-response-dto.ts +1 -1
- package/models/oauth-error-response-dto.ts +1 -1
- package/models/preconditions-dto.ts +1 -1
- package/models/preconditions-v1-dto.ts +1 -1
- package/models/problem-details-dto.ts +1 -1
- package/models/product-receipt-v1-response-dto.ts +1 -1
- package/models/product-v1-response-dto.ts +1 -1
- package/models/protected-resource-metadata-dto.ts +1 -1
- package/models/register-award-request-dto.ts +1 -1
- package/models/register-award-v1-request-dto.ts +1 -1
- package/models/register-semo-contract-request-dto.ts +1 -1
- package/models/request-split-invoice-v1-request-dto.ts +1 -1
- package/models/retiree-roster-input-dto.ts +1 -1
- package/models/retiree-roster-row-dto.ts +1 -1
- package/models/revoke-request-dto.ts +1 -1
- package/models/semo-contract-registered-response-dto.ts +1 -1
- package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
- package/models/split-invoice-v1-response-dto.ts +1 -1
- package/models/statement-document-dto.ts +1 -1
- package/models/statement-product-dto.ts +1 -1
- package/models/statement-v1-document-dto.ts +1 -1
- package/models/statement-v1-product-dto.ts +1 -1
- package/models/submit-negotiation-scores-request-dto.ts +1 -1
- package/models/submit-negotiation-scores-v1-request-dto.ts +1 -1
- package/models/supplier-card-payable-response-dto.ts +1 -1
- package/models/supplier-tax-type.ts +1 -1
- package/models/tax-invoice-issued-response-dto.ts +1 -1
- package/models/token-request-dto.ts +1 -1
- package/models/token-response-dto.ts +3 -2
- package/models/update-bid-request-dto.ts +1 -1
- package/models/upload-file-request-dto.ts +1 -1
- package/models/upload-file-v1-request-dto.ts +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/models/index.ts
CHANGED
|
@@ -8,9 +8,12 @@ export * from './award-registered-v2-response-dto';
|
|
|
8
8
|
export * from './bid-attachment-v1-dto';
|
|
9
9
|
export * from './bid-bond-dto';
|
|
10
10
|
export * from './bid-bond-v1-dto';
|
|
11
|
+
export * from './bid-contact-dto';
|
|
12
|
+
export * from './bid-contacts-dto';
|
|
11
13
|
export * from './bid-contract-documents-batch-v1-request-dto';
|
|
12
14
|
export * from './bid-contract-documents-v1-response-dto';
|
|
13
15
|
export * from './bid-created-response-dto';
|
|
16
|
+
export * from './bid-delivery-terms-dto';
|
|
14
17
|
export * from './bid-detail-response-dto';
|
|
15
18
|
export * from './bid-document-dto';
|
|
16
19
|
export * from './bid-document-v1-dto';
|
|
@@ -23,6 +26,8 @@ export * from './bid-lifecycle-dto';
|
|
|
23
26
|
export * from './bid-manager-dto';
|
|
24
27
|
export * from './bid-manager-v1-dto';
|
|
25
28
|
export * from './bid-participant-summary-dto';
|
|
29
|
+
export * from './bid-payment-terms-dto';
|
|
30
|
+
export * from './bid-product-dto';
|
|
26
31
|
export * from './bid-public-status';
|
|
27
32
|
export * from './bid-published-response-dto';
|
|
28
33
|
export * from './bid-registered-response-dto';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* μΈλΆ ERP μ°λμ© RESTful API. ## λ²μ λ³ μΈμ¦ - **_/v2** β OAuth2 Bearer JWT (`client_credentials` νλ‘μ°). `/oauth/token` μμ ν ν° λ°κΈ ν `Authorization: Bearer <token>` ν€λ. - **_/v1** β V5 μΆ©μ€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν€λλ‘ μ μ‘. ## κΆν β λ κ°μ λ
립λ μΆ `403` μ λ§λ¬λ€λ©΄ λ μ€ μ΄λ μΆμ κ±Έλ¦° κ²μΈμ§ λ¨Όμ ꡬλΆν κ². - **μ€μ½ν** = *무μμ ν μ μλ*. ν ν°μ λΆμ¬λ `bids:read`Β·`contracts:write` λ±. 미보μ μ `β¦/insufficient-scope`. - **λν λ²μ** = *λꡬμ λ°μ΄ν°λ₯Ό λ€λ£° μ μλ*. API ν€ μ€μ μ΄λ©° μ€μ½νλ‘ ννλμ§ μλλ€. λ²μ λ°μ΄λ©΄ μ€μ½νμ 무κ΄νκ² 403 μ΄λ€. λν λ²μλ ν€λ§λ€ λ μ€ νλλ‘ μ€μ λλ€ β **μμ κ·Έλ£Ή μ μ**(κΈ°κ΄ ν€. μ¬μ
μ²Β·λΆμ κ³μ μ΄ μλ‘ μ겨λ μλ ν¬ν¨) λλ **μ§μ λ°μ£Όμ² λͺ©λ‘**(κ³μ½μΌλ‘ ν©μλ λͺ©λ‘). λ²μλ₯Ό λνμΌ νλ©΄ μ€μ½νκ° μλλΌ ν€ μ€μ λ³κ²½μ μμ²ν κ². ## μλ¬ (RFC 9457 problem+json) λͺ¨λ μλ¬ μλ΅μ `application/problem+json`. μλΉμλ **HTTP status + `type` URI** λ‘ λΆκΈ°νλ€. - `retryable`(boolean): μλ μ¬μλ μμ μ¬λΆ. `true`(429Β·5xx transient)λ©΄ backoff ν μ¬μλ, `false`λ©΄ μμ²μ κ³ μ³μΌ νλ€. - `correlationId`: μμ² μΆμ id. `X-Correlation-Id` μλ΅ ν€λμ λμΌ β λ¬Έμ μ μ΄ κ°μ 첨λΆ. - `invalid-params`: κ²μ¦ μ€ν¨(400 `β¦/validation-failed`) μ μλ° νλ κ²½λ‘ λͺ©λ‘(RFC 9457 νμ₯, κ° μμ). `type` μ `https://problems.cmarket.io/partner/<slug>` ννμ **μμ μλ³μ**λ€. RFC 9457 Β§3.1.1 μ΄ νμ©νλ λλ‘ μ΄ URI λ **μμ°Έμ‘°(dereference)λμ§ μλλ€** β λΈλΌμ°μ λ‘ μ΄μ§ λ§κ³ λ¬Έμμ΄ λΉκ΅λ‘λ§ μΈ κ². slug λͺ©λ‘κ³Ό μλ―Έλ κ° μλν¬μΈνΈμ μλ΅ μ€λͺ
μ status λ³λ‘ λͺ
μλΌ μλ€. μ slug μ μΆκ°λ μ μμΌλ―λ‘, λͺ¨λ₯΄λ slug μ λ§λλ©΄ `type` μ΄ μλλΌ **HTTP status λ‘ ν΄λ°±**νλλ‘ κ΅¬νν κ². ### λ©±λ±μ± μλ°: 409 μ 422 μ μ°¨μ΄ - `409` `β¦/idempotency-key-conflict` β κ°μ ν€μ **μ μμ²μ΄ μμ§ μ²λ¦¬ μ€**μ΄λ€. μ μ λ€ κ°μ ν€λ‘ λ€μ λΆλ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°λλ€. - `422` `β¦/idempotency-key-reused` β κ°μ ν€λ₯Ό **λ€λ₯Έ body** λ‘ λ³΄λλ€. μ¬μλν΄λ μμν κ°μ μ€ν¨λ€. μ ν€λ₯Ό μ°κ±°λ body λ₯Ό λλ릴 κ². ## λ μ΄νΈ λ¦¬λ° μ μ **60 μμ²/λΆ per `client_id`**, ν ν° λ°κΈ(`/oauth/token`)μ **5 μμ²/λΆ**. μ΄κ³Ό μ `429`(`type: β¦/too-many-requests`). μΏΌν°λ λ κ°μ§ νκΈ°λ‘ ν¨κ» λκ°λ€ β μ κ· μ°λμ νμ€ νλλ₯Ό μΈ κ². - **νμ€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ μ±
) Β· `RateLimit: \"default\";r=59;t=42` (μλ r, 리μ
κΉμ§ t μ΄) - **λ κ±°μ**(κ΄μ©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ μ°λ νΈνμ μν΄ μ μ§νλ€. `429` μμλ `Retry-After`(μ΄)κ° μ°μ νλ€. λλ λκΈ°ν(νλͺ© λ¨μ λ°λ³΅ λ±λ‘ λ±)λ `Retry-After` λ§νΌ backoff ν μ¬μλν κ². ## μΆμ μμ²μ `X-Correlation-Id` ν€λλ₯Ό μ€μΌλ©΄ κ·Έλλ‘ echo λκ³ , μμΌλ©΄ μλ²κ° λ°κΈνλ€. λͺ¨λ μλ΅(μ±κ³΅/μλ¬)μ `X-Correlation-Id` κ° μ€λ¦°λ€. ## λ²μ μλͺ
(deprecation/sunset) - **_/v1** μ λ κ±°μ V5 cutover μλ£ μμ κΉμ§ μ μ§λλ μΆ©μ€ νλ‘μλ€. νμ§ μΌμ μ΄ μ ν΄μ§λ©΄ /v1 μλ΅μ `Deprecation`(RFC 9745, `@<epochμ΄>`) κ³Ό `Sunset`(RFC 8594, HTTP-date) ν€λκ° μ€λ¦°λ€ β κ·Έ μ κΉμ§λ λ ν€λκ° λκ°μ§ μλλ€. - **_/v2** breaking λ³κ²½μ CHANGELOG SemVer(major bump)μ `Deprecation`/`Sunset` ν€λλ‘ ν΅μ§νλ€. μλΉμλ μ΄ ν€λλ₯Ό λͺ¨λν°λ§ν κ².
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 25.
|
|
7
|
+
* The version of the OpenAPI document: 25.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|