claude-video-effects
51 video effects for Claude Code: drop in a talking-head clip, type /effects orbit. Face tracking, behind-your-head layers. By @vibha.in.progress
翻譯準備中
DynaFetch, Your Data Retriever. Modern REST API package for Dynamo 3.0/.NET 8. Features a clean HTTP client with dual JSON engines, persistent authentication, and comprehensive error handling. Inspired by DynaWeb, built for performance and simplicity.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Modern REST API integration for Dynamo 3.0
🌐 View DynaFetch Landing Page - Interactive overview with examples and documentation links
DynaFetch is a clean, modern .NET 8 package that brings REST API capabilities to Dynamo 3.0. Built for performance and ease of use, it provides a comprehensive HTTP client with robust JSON processing and enterprise-ready authentication support.
DynaFetch was developed through a collaborative "Vibe Coding" project between TheBIMsider and Claude (Anthropic AI). This partnership combined domain expertise in BIM and construction technology with AI-assisted development to create a modern, efficient REST API package for the Dynamo community.
Development Approach: Iterative development with comprehensive testing, focusing on real-world usage patterns and professional-grade reliability.
Inspiration: DynaFetch is inspired by and builds upon the pioneering work of Radu Gidei and the DynaWeb package:
DynaWeb established the foundation for REST API integration in Dynamo. DynaFetch continues this legacy with modern .NET 8 architecture, enhanced JSON processing, and streamlined authentication patterns. We're grateful for Radu's contribution to the Dynamo community.
1. ClientNodes.Create → Creates HTTP client
2. ExecuteNodes.GET(client, "https://api.github.com/users/octocat") → Makes API call
3. JsonNodes.ToDictionary(response) → Converts JSON to Dynamo Dictionary
That's it! You now have GitHub user data as a Dynamo Dictionary.
Create Client → GET Request → Process JSON
Nodes:
ClientNodes.Create() → clientExecuteNodes.GET(client, "https://jsonplaceholder.typicode.com/posts/1") → responseJsonNodes.ToDictionary(response) → dictionaryResult: Post data as Dynamo Dictionary with keys like "userId", "title", "body"
Create Client → Add Authentication → GET Request → Process Response
Nodes:
ClientNodes.Create() → clientClientNodes.AddDefaultHeader(client, "Authorization", "Bearer YOUR_TOKEN") → clientExecuteNodes.GET(client, "https://httpbin.org/bearer") → responseJsonNodes.ToDictionary(response) → dictionaryAuthentication persists: All subsequent requests from this client automatically include the Bearer token.
Create Client → Build JSON → POST Request → Process Response
Nodes:
ClientNodes.Create() → clientJsonNodes.DictionaryToJson(your_dictionary) → json_stringExecuteNodes.POST(client, "https://api.example.com/data", json_string) → responseJsonNodes.ToDictionary(response) → result_dictionaryDynaFetch supports modern API authentication:
Bearer Tokens (OAuth/JWT):
ClientNodes.AddDefaultHeader(client, "Authorization", "Bearer " + token)
API Keys:
ClientNodes.AddDefaultHeader(client, "X-API-Key", api_key)
Custom Headers:
ClientNodes.AddDefaultHeader(client, "Custom-Auth", auth_value)
JWT Assertions (Service Accounts):
ClientNodes.GenerateJwtAssertion(privateKeyPem, clientId, audience, scopes, 60)
For service account authentication like Autodesk Platform Services Secure Service Accounts (SSA):
1. ClientNodes.GenerateJwtAssertion(privateKeyPem, clientId, "https://developer.api.autodesk.com/", ["data:read", "data:write"], 60) → jwt_assertion
2. Build token exchange body:
"grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=" + jwt_assertion → request_body
3. ClientNodes.Create() → client
4. ExecuteNodes.POST(client, "https://developer.api.autodesk.com/authentication/v2/token", request_body) → token_response
5. JsonNodes.ToDictionary(token_response) → token_dict
6. Dictionary.ValueAtKey(token_dict, "access_token") → access_token
7. ClientNodes.AddDefaultHeader(client, "Authorization", "Bearer " + access_token) → authenticated_client
8. Use authenticated_client for subsequent API calls
Supported JWT Use Cases:
File Uploads (Multipart Form Data):
RequestNodes.AddFile(request, "file", filePath, "image/png")
File Upload Workflow:
1. ClientNodes.Create() → client
2. ClientNodes.AddDefaultHeader(client, "Authorization", "Bearer " + token)
3. RequestNodes.ByUrl(uploadUrl) → request
4. RequestNodes.AddFile(request, "file", filePath, "image/png") → request
5. ExecuteNodes.POST(client, "", request) → response
Supported File Upload Features:
RequestNodes.AddFormField()DynaFetch includes 22 comprehensive sample graphs organized into three categories for complete learning and reference.
Core functionality demonstrations perfect for learning DynaFetch basics:
Practical migration examples showing DynaWeb to DynaFetch transitions:
Complete node documentation organized by functional groups:
All samples are located in the samples/ folder and can be opened directly in Dynamo. Each sample includes:
Recommended Learning Path: Start with Basic-GET-Request, progress through the original samples, then explore migration examples to see practical real-world patterns.
Create() - Create new HTTP clientCreateWithBaseUrl(baseUrl) - Create client with base URLSetTimeout(client, seconds) - Set request timeoutAddDefaultHeader(client, name, value) - Add persistent headerSetUserAgent(client, userAgent) - Set client user agentGenerateJwtAssertion(privateKeyPem, clientId, audience, scopes, expirationMinutes) - Generate JWT assertion for service account authenticationGET(client, url) - HTTP GET requestPOST(client, url, jsonData) - HTTP POST with JSONPUT(client, url, jsonData) - HTTP PUT with JSONDELETE(client, url) - HTTP DELETE requestPATCH(client, url, jsonData) - HTTP PATCH with JSONToDictionary(response) - Response to DictionaryToList(response) - Response to ListDictionaryToJson(dictionary) - Dictionary to JSON stringFormat(json) - Pretty-print JSONIsValid(json) - Validate JSON syntaxGetContent(response) - Get raw response textUse Case: Get weather data, stock prices, public datasets
ClientNodes.Create()
↓
ExecuteNodes.GET(client, "https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_KEY")
↓
JsonNodes.ToDictionary(response)
↓
Extract data: dictionary["main"]["temp"]
Use Case: Submit form data, create records, upload information
ClientNodes.Create()
↓
ClientNodes.AddDefaultHeader(client, "Authorization", "Bearer " + token)
↓
JsonNodes.DictionaryToJson(your_data)
↓
ExecuteNodes.POST(client, "https://api.example.com/records", json_data)
↓
JsonNodes.ToDictionary(response)
Use Case: Login, then perform operations with session
1. POST login credentials → Get auth token
2. Add auth token to client headers
3. GET/POST/PUT operations with authenticated client
4. Process responses with JSON nodes
AddDefaultHeader for persistent authenticationresponse.IsSuccessful before processing JSONJsonNodes.IsValid() to validate JSON before parsingToDictionary for JSON objectsToList for JSON arraysFormat for debugging JSON structure"Cannot connect to API"
"JSON parsing failed"
JsonNodes.IsValid() to check JSON syntaxJsonNodes.GetContent() to see raw response"Authentication failed"
For comprehensive troubleshooting help, see the Troubleshooting Guide.
DynaFetch is open source under the BSD-3-Clause license. Contributions are welcome!
dotnet testDynaFetch is licensed under the BSD-3-Clause License.
DynaWeb Attribution: This project builds upon patterns and concepts pioneered by Radu Gidei's DynaWeb package. We acknowledge and appreciate the foundational work that made REST API integration possible in Dynamo.
docs/ folder for comprehensive guidessamples/ folder for Dynamo graph examplesDynaFetch - Modern REST APIs for Modern Dynamo